← К каталогу
Исходный код · ID 3862

generic a-tlp v.9.02.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Получить полный код

Поиск по коду файла

#property version   "9.02"
#property strict
#define _TRADE_               1
#define _PAUSE_               2

enum _EventYesNo{
      YES            = 1,           //ÄÀ
      NO             = 2            //ÍÅÒ
      };

enum _EventFilter{
      ON             = 1,
      OFF            = 2
      };

input    int            MagicNumber                = 11052016;
input    string         Comm                       = "Generic A-TLP v9.0";             //Êîììåíòàðèé
input    double         Max_Spread                 = 3;
input    int            Slipage                    = 1;
extern   double         Stop_Loss                  = 38;
extern   double         Take_Profit                = 35;
input    bool           use_dyn_TP                 = false;             //èñïîëüçîâàòü äèíàìè÷åñêèé TP
input    int            TP_perc                    = 80;                //%% TP îò ðàçìåðà êàíàëà
input    int            min_TP                     = 10;
input    bool           use_BE                     = false;             //èñïîëüçîâàòü ïåðåâîä â áåçóáûòîê
input    double         X                          = 7;                 //Åñëè òåêóùàÿ öåíà ëó÷øå öåíû âõîäà íà Õ ïóíêòîâ
input    double         Y                          = 1;                 //ïåðåìåùàåì ÑË íà Y ïóíêòîâ â ïðîôèò
input    int            Channel_Period             = 13;
input    int            Entry_Break                = 1;
input    int            Exit_Distance              = -13;
input    int            MaxDailyRange              = 1000;
input    double         Lots                       = 0.1;
input    double         Auto_Risk                  = 0.0;
input    int            Min_Volatility             = 20;
input    int            Exit_Profit_Pips           = -12;
         int            ma_period                  = 2;
input    int            Reverse_Profit             = 20;
input    int            Exit_Minutes               = 140;
input    int            Time_Profit_Pips           = 0;
input    _EventFilter   Filter_1                   = 1;                 //Ôèëüòð ¹1 (íà âûõîä èç ñäåëêè)
input    _EventFilter   Filter_2                   = 1;                 //Ôèëüòð ¹2 (íà âûõîä èç ñäåëêè)
input    _EventFilter   Filter_3                   = 1;                 //Ôèëüòð ¹3 (íà âûõîä èç ñäåëêè)
input    color          Col_info                   = C'176,162,168';    //Öâåò èíôî ïàíåëè

         double         maxlot                     = 0.01;
         double         lotstep                    = 0.01;
         double         old_point                  = 0.0001;
         double         minlot                     = 0.0;
         int            lotsize                    = 0;
         int            stoplevel                  = 0;
         double         lots                       = 0;
         int            count_sell;
         int            count_buy;
         datetime       day_of_trade;
         string         tr_hr                      = "";
         string         tp_info                    = "";
         string         be_info                    = "";
         int            slippage;
         datetime       need_to_verify_market_info;

         string         InpFileName;                                    // Èìÿ ôàéëà
         string         fileName                   = "EA_Generic";      // Èìÿ ôàéëà
         string         InpDirectoryName           = "LOGS";            // Èìÿ êàòàëîãà

input    string         S1                         = " DayOfWeek Filter";
input    _EventYesNo    monday                     = 1;                 //òîðãóåì â ÏÎÍÅÄÅËÜÍÈÊ?
input    string         monday_open                = "00:00";
input    string         monday_pause_start         = "01:00";
input    string         monday_pause_stop          = "22:00";
input    string         monday_close               = "23:59";

input    _EventYesNo    tuesday                    = 1;                 //òîðãóåì âî ÂÒÎÐÍÈÊ?
input    string         tuesday_open               = "00:00";
input    string         tuesday_pause_start        = "01:00";
input    string         tuesday_pause_stop         = "22:00";
input    string         tuesday_close              = "23:59";

input    _EventYesNo    wednesday                  = 1;                 //òîðãóåì â ÑÐÅÄÓ?
input    string         wednesday_open             = "00:00";
input    string         wednesday_pause_start      = "01:00";
input    string         wednesday_pause_stop       = "22:00";
input    string         wednesday_close            = "23:59";

input    _EventYesNo    thursday                   = 1;                 //òîðãóåì â ×ÅÒÂÅÐÃ?
input    string         thursday_open              = "00:00";
input    string         thursday_pause_start       = "01:00";
input    string         thursday_pause_stop        = "22:00";
input    string         thursday_close             = "23:59";

input    _EventYesNo    friday                     = 1;                 //òîðãóåì â ÏßÒÍÈÖÓ?
input    string         friday_open                = "00:00";
input    string         friday_pause_start         = "01:00";
input    string         friday_pause_stop          = "22:00";
input    string         friday_close               = "23:59";

input    _EventYesNo    sunday                     = 2;                 //òîðãóåì â ÂÎÑÊÐÅÑÅÍÜÅ?
input    string         sunday_open                = "08:30";
input    string         sunday_pause_start         = "15:30";
input    string         sunday_pause_stop          = "17:55";
input    string         sunday_close               = "21:35";

input    string         S2                         = " Roll Over Filter";
input    _EventYesNo    use_rollover_filter        = 1;                 //çàêðûâàòü ñäåëêè â ðîëëîâåð
input    string         rollover_start             = "23:55";           //âðåìÿ íà÷àëà ðîëëîâåðà
input    string         rollover_end               = "00:35";           //âðåìÿ îêîí÷àíèÿ ðîëëîâåðà

         int            flag_trade;
         datetime       time1,
                        time2,
                        time3,
                        time4;

int OnInit()
{
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
{
   Comment("");
   fRectLabelDelete(0,"info_panel");
}

void OnTick()
{
      // код доступен только после оплаты
   }

void OpenTrade(string type){
   double price = 0;
   double range = 0;
   int cmd = -1;
   color col_type = clrNONE;

   if(type == "BUY"){
      cmd = OP_BUY;
      col_type = clrAqua;
      range = (iOpen(NULL,PERIOD_D1,0) - Bid)/old_point;
   }
   if(type == "SELL"){
      cmd = OP_SELL;
      col_type = clrRed;
      range = (Bid - iOpen(NULL,PERIOD_D1,0))/old_point;
   }
   for(int count = 0; count < 5; count++){
      RefreshRates();
      if(type == "BUY") price = Ask;
      if(type == "SELL") price = Bid;
      int ticket = OrderSend(Symbol(), cmd, lots, price, slippage, 0, 0, Comm,
                                       MagicNumber, 0, col_type);   
      Sleep(3000);
      if(ticket > 0){
         if(!OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)){
            string q = __FUNCTION__ + ": íå óäàëîñü âûäåëèòü îðäåð " +
                     IntegerToString(ticket) + "! " + fMyErDesc();
            Print(q);
            fWriteDataToFile(q);
            break;
         }
         else{
            string q = __FUNCTION__ + ": îðäåð " + type + " îòêðûò ïî öåíå " +
                     DoubleToStr(OrderOpenPrice(),Digits) + "; DailyRange = (" +
                     DoubleToStr(range,1) + ") ïèïñ.";
            Print(q);
            fWriteDataToFile(q);
            break;
         }
      } 
      else{
         string q = __FUNCTION__ + ": îðäåð " + type +
                     " íå áûë îòêðûò!: " + fMyErDesc();
         Print(q);
         fWriteDataToFile(q);
      }
   }   
}

bool fGetRollOver(void){
   if(use_rollover_filter == 2){             //íå çàêðûâàòü ñäåëêè â ðîëëîâåð
      if(StrToTime(rollover_start) > StrToTime(rollover_end)){
         if(TimeCurrent() >= StrToTime(rollover_start) || TimeCurrent() < StrToTime(rollover_end))
            return(true);
      }
      else{
         if(TimeCurrent() >= StrToTime(rollover_start) && TimeCurrent() < StrToTime(rollover_end))
            return(true);
      }
   }
   return(false);
}

string fInfoTradeHours(void){
   switch(DayOfWeek()){
        case 0: {    if(sunday == 2){
                        return( "\n"
                              + "\n    no trade today"
                              + "\n"
                              + "\n");
                     }
                     else{
                        if(sunday_pause_start == "0"){
                           return( "\n  Start Hour (Broker Time) = " + sunday_open
                                 + "\n  End Hour (Broker Time) = " + sunday_close
                

Показано первые 50% кода (символов: 33057)

Что вы получите после оплаты

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода: 3 306 ₽