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

Forex Cyborg

forex cyborg pro.mq4
Вы автор или правообладатель?

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

Краткий обзор

О программе

Forex Cyborg — это торговый советник для MetaTrader 4, позиционируемый как скальперская система для ночной торговли. Советник работает на таймфрейме M15 и поддерживает широкий список форпар (EURUSD, GBPUSD, USDCHF, AUDUSD и другие). В коде подтверждено использование индикаторов Bollinger Bands, CCI и SMMA для формирования торговых сигналов на покупку и продажу.

Советник обрабатывает событие OnTick и использует торговые функции MetaTrader для открытия и закрытия позиций. Встроена система управления рисками с тремя режимами: фиксированный лот, риск на сделку в процентах от баланса и процент от баланса. Доступна фильтрация коррелированных сделок по валютным парам, ограничение количества одновременных позиций, а также контроль по спреду и волатильности.

В настройках реализована авторасчётка GMT и поддержка летнего/зимнего времени (DST), что позволяет задавать торговые сессии по локальному времени. Также предусмотрены опции остановки торговли в пятницу вечером и в понедельник утром, выбор типа пресета (Normal/Conservative) и фильтр по префиксу символа. В коде присутствует проверка лицензионного ключа и ограничение на использование на демо-счёте.

Важно учитывать, что советник содержит строгие внутренние проверки лицензии и аккаунта, а также множество внутренних констант, определяющих торговые условия для каждой пары отдельно. Публично заявленная совместимость и результаты торговли не подтверждены исходным кодом.

Настройки программы

НастройкаОписание
GENERAL_SETTINGS Раздел общих настроек, объединяющий базовые параметры советника.
Comment Текст комментария, добавляемого к каждой открытой позиции советником.
MagicNumber Магический номер для идентификации ордеров, открытых данным советником.
Seperator0 Визуальный разделитель в интерфейсе настроек.
Info0 Информационный текст-подсказка о правилах использования GMT Offset и DST.
GMT_autocalc Переключатель автоматического расчёта смещения GMT по текущему серверному времени. При активации ручное значение GMT_offset игнорируется вне тестирования.
GMT_offset Ручное значение смещения GMT в часах, используемое при отключённой автоматической расчётке.
DST Режим учёта летнего/зимнего времени: None — без коррекции, US — американское переходное время, Europe — европейское переходное время.
Seperator2 Визуальный разделитель в интерфейсе настроек.
MM_SETTINGS Раздел настроек управления капиталом.
MoneyManagement Тип управления капиталом: MM_OFF — фиксированный лот, MM_SL — риск на сделку в процентах от баланса, MM_Depo — процент от баланса.
Auto_Risk Размер лота или процент риска в зависимости от выбранного типа управления капиталом: при MM_OFF — фиксированный лот, при MM_SL — процент риска на сделку, при MM_Depo — процент от баланса.
Seperator3 Визуальный разделитель в интерфейсе настроек.
RISK_CONTROL Раздел настроек контроля рисков.
MinimizeRiskCorrelation Переключатель минимизации корреляционного риска: при активации советник проверяет открытые ордера и блокирует открытие новых коррелированных позиций.
MaxCorrelatedTradesPerCurrency Максимальное количество коррелированных сделок одновременно на одну валютную пару, при активной фильтрации рисков.
SymbolPrefix Префикс символа для фильтрации пар (например, при использовании суффиксов брокера).
Seperator1 Визуальный разделитель в интерфейсе настроек.
Info2 Информационный текст о доступных параметрах для базовой версии.
Info3 Информационный текст о доступных параметрах для стандартной и золотой версии.
Info4 Информационный текст с перечислением пар базовой версии.
Info5 Информационный текст с перечислением дополнительных пар стандартной и золотой версии.
Info51 Информационный текст с дополнительным списком пар.
ADDITIONAL_SETTINGS Раздел дополнительных настроек, объединяющий параметры пресета и ограничений торговли.
PresetType Тип пресета торговых параметров: Normal — стандартный, Conservative — консервативный (с изменёнными значениями стоп-лосса и тейк-профита).
StopTradingOnFridayClosing Переключатель остановки торговли в пятницу после заданного времени закрытия сессии.
StopTradingOnMondayOpening Переключатель остановки торговли в понедельник до заданного времени открытия сессии.
Получить полный код

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

#property description "Forex Cybory Darwinex" 
#property description "It is a high-quality night scalp EA"
#property description "PAIR:AUDCAD, EURCAD, EURGBP, EURAUD, EURUSD, GBPUSD, USDCHF,AUDCHF, AUDUSD, CADCHF, EURCHF, GBPAUD, GBPCAD, USDCAD"
#property description "TF: M15"
#property strict

 enum _DST {
      None = 0,
      US = 1,
      Europe = 2,
          };
 enum _MoneyManagement {
      MM_OFF = 0,//Fixed lot
      MM_SL = 1,//Risk per Trade
      MM_Depo = 2,//Percent of Balance
          };
 enum _PresetType {
      ST_Normal = 0,//Normal
      ST_Conservative = 1,//Conservative
          };
extern string GENERAL_SETTINGS="GENERAL SETTINGS"  ;  
extern string Comment="Forex Cyborg vDarwinex"  ;   //Comment
extern long  LicenceKey=********  ;    //License key
extern int   MagicNumber=1604  ;    //Magic Number
extern string Seperator0="-------------------------"  ;   //-------------------
extern string Info0="\'GMT Offset\' and \'DST\' will only be used, during backtests and if \'GMT Auto calculation\' is not set"  ;   //Information
extern bool GMT_autocalc=true  ;    //GMT Auto calculation
extern int   GMT_offset=0  ;    //GMT Offset
extern  _DST  DST=0  ;   
extern string Seperator2="-------------------------"  ;   //-------------------
extern string MM_SETTINGS="MONEY MANAGEMENT SETTINGS"  ;  
extern  _MoneyManagement  MoneyManagement=1  ;    //MM Type
extern double Auto_Risk=3.5  ;    //MM Size
extern string Seperator3="-------------------------"  ;   //-------------------
extern string RISK_CONTROL="RISK CONTROL SETTINGS"  ;  
extern bool MinimizeRiskCorrelation=true  ;   
extern int   MaxCorrelatedTradesPerCurrency=2  ;   
extern string SymbolPrefix=""  ;  
extern string Seperator1="-------------------------"  ;   //-------------------
extern string Info2="Presets available for the following pairs "  ;   //Information
extern string Info3="in the BASIC-version: "  ;   //Information
extern string Info4="AUDCAD, EURCAD, EURGBP, EURAUD, EURUSD, GBPUSD, USDCHF "  ;   //Information
extern string Info5="in the STANDARD + GOLD-version additionally: "  ;   //Information
extern string Info51="AUDCHF, AUDUSD, CADCHF, EURCHF, GBPAUD, GBPCAD, USDCAD "  ;   //Information
extern string ADDITIONAL_SETTINGS="ADDITIONAL SETTINGS"  ;  
extern  _PresetType  PresetType=0  ;    //Preset Type
extern bool StopTradingOnFridayClosing=false ;   
extern bool StopTradingOnMondayOpening=false ;   

 double    total_do_1 = 0.0;
 bool      total_bo_2 = true;
 int       total_in_3 = 1800;
 int       total_in_4 = 300;
 bool      total_bo_5 = false;
 int       total_in_6 = 2140;
 int       total_in_7 = 2220;
 bool      total_bo_8 = false;
 int       total_in_9 = 700;
 int       total_in_10 = 2;
 int       total_in_11 = 2000;
 int       total_in_12 = 2300;
 int       total_in_13 = 60;
 int       total_in_14 = 120;
 double    total_do_15 = 5.0;
 int       total_in_16 = 15;
 int       total_in_17 = 22;
 int       total_in_18 = 5;
 int       total_in_19 = 100;
 int       total_in_20 = 130;
 int       total_in_21 = 16;
 double    total_do_22 = 2.0;
 double    total_do_23 = 0.0;
 double    total_do_24 = 22.0;
 bool      total_bo_25 = true;
 int       total_in_26 = 250;
 int       total_in_27 = -250;
 bool      total_bo_28 = true;
 bool      total_bo_29 = true;
 int       total_in_30 = 120;
 bool      total_bo_31 = true;
 double    total_do_32 = 0.0;
 double    total_do_33 = 0.0;
 bool      total_bo_34 = true;
 int       total_in_35 = 10;
 double    total_do_36 = 100.0;
 double    total_do_37 = -10.0;
 double    total_do_38 = 0.0;
 int       total_in_39 = 5;
 int       total_in_40 = 0;
 int       total_in_41 = 0;
 int       total_in_42 = 0;
 int       total_in_43 = 0;
 int       total_in_44 = 0;
 double    total_do_45 = 5.0;
 int       total_in_46 = 15;
 int       total_in_47 = 22;
 int       total_in_48 = 5;
 int       total_in_49 = 100;
 int       total_in_50 = 130;
 int       total_in_51 = 16;
 double    total_do_52 = 2.0;
 double    total_do_53 = 0.0;
 double    total_do_54 = 22.0;
 bool      total_bo_55 = true;
 int       total_in_56 = 250;
 int       total_in_57 = -250;
 bool      total_bo_58 = true;
 bool      total_bo_59 = true;
 int       total_in_60 = 120;
 bool      total_bo_61 = true;
 double    total_do_62 = 0.0;
 double    total_do_63 = 0.0;
 bool      total_bo_64 = true;
 int       total_in_65 = 10;
 double    total_do_66 = 100.0;
 double    total_do_67 = -10.0;
 double    total_do_68 = 0.0;
 int       total_in_69 = 5;
 int       total_in_70 = 0;
 int       total_in_71 = 0;
 int       total_in_72 = 0;
 int       total_in_73 = 0;
 int       total_in_74 = 0;
 int       total_in_75 = 0;
 int       total_in_76 = 0;
 string    total_st_77;
 string    total_st_78;
 string    total_st_79;
 string    total_st_80;
 string    total_st_81;
 string    total_st_82;
 string    total_st_83;
 string    total_st_84;
 double    total_do_85 = 0.0;
 double    total_do_86 = 0.0;
 bool      total_bo_87 = false;
 bool      total_bo_88 = true;
 double    total_do_89 = 0.0;
 double    total_do_90 = 0.01;
 double    total_do_91 = 0.01;
 double    total_do_92 = 0.01;
 int       total_in_93 = 0;
 string    total_st_94 = "";
 string    total_st_95 = "";
 string    total_st_96 = "";
 string    total_st_97 = "";
 long      total_lo_98 = 0;
 long      total_lo_99 = 0;
 long      total_lo_100 = 0;
 long      total_lo_101 = 0;
 bool      total_bo_102 = true;
 bool      total_bo_103 = false;
 bool      total_bo_104 = false;
 bool      total_bo_105 = false;
 long      total_lo_106 = D'2097.04.01';
 bool      total_bo_107 = true;
 int       total_in_108 = 35060;
 int       total_in_109 = 57019;
 int       total_in_110 = 2889024;
 bool      total_bo_111 = true;
 int       total_in_112 = 0;
 bool      total_bo_113 = false;
 bool      total_bo_114 = false;
 int       total_in_115 = 0;
 long      total_lo_116 = 0;
 long      total_lo_117 = 0;
 long      total_lo_118 = 0;
 double    total_do_119 = 0.0;
 double    total_do_120 = 0.0;
 double    Tot_do_121 = 0.0;
 double    Tot_do_122 = 0.0;
 double    Tot_do_123 = 0.0;
 double    Tot_do_124 = 0.0;
 double    Tot_do_125 = 0.0;
 double    Tot_do_126 = 0.0;
 double    Tot_do_127 = 0.0;
 double    Tot_do_128 = 0.0;
 string    Tot_st_129 = "";
 long      Tot_lo_130 = TimeCurrent();

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

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

 void OnDeinit (const int Wood_0)
 {

 ObjectDelete(0,"rect"); 
 Comment(""); 
 }

 void lizong_6 (long Wood_0)
 {
 string      Sub_st_1;

 bool       Tmp_bo_6;
 bool       Tmp_bo_7;

 total_bo_111 = false ;
 if (total_bo_102 )//Wood_0 > 1 && Tot_bo_102 )
  {

   {
   total_bo_111 = true ;
   total_bo_113 = true ;
   total_bo_114 = true ;

    Sub_st_1 = IntegerToString(Wood_0 ) ;
   total_in_112 = StringToInteger(StringSubstr(Sub_st_1,4,1)) ; 
   if ( ( total_in_112 < 1 || total_in_112 > 3 ) )
    {
    total_bo_111 = false ;
    }
   if ( total_in_112 == 1 )
    {
    if ( ( StringFind(Symbol(),"AUDCAD",0) > -1 || StringFind(Symbol(),"EURCAD",0) > -1 || StringFind(Symbol(),"EURGBP",0) > -1 || StringFind(Symbol(),"EURAUD",0) > -1 || StringFind(Symbol(),"EURUSD",0) > -1 || StringFind(Symbol(),"GBPUSD",0) > -1 || StringFind(Symbol(),"USDCHF",0) > -1 ) )
     {
     Tmp_bo_6 = true;
     }
    else
     {
     Tmp_bo_6 = false;
     }
    if ( !(Tmp_bo_6) )
     {
     total_bo_113 = false ;
    }}
   if ( total_in_112 == 2 )
    {
    if ( ( StringFind(Symbol(),"AUDCAD",0) > -1 || StringFind(Symbol(),"AUDCHF",0) > -1 || StringFind(Symbol(),"AUDUSD",0) > -1 || StringFind(Symbol(),"CADCHF",0) > -1 || StringFind(Symbol(),"EURAUD",0) > -1 || StringFind(Symbol(),"EURCAD",0) > -1 || StringFind(Symbol(),"EURCHF",0) > -1 || StringFind(Symbol(),"EURGBP",0) > -1 || StringFind(Symbol(),"EURUSD",0) > -1 || StringFind(Symbol(),"GBPAUD",0) > -1 || StringFind(Symbol(),"GBPCAD",0) > -1 || StringFind(Symbol(),"GBPUSD",0) > -1 || StringFind(Symbol(),"USDCAD",0) > -1 || StringFind(Symbol(),"USDCHF",0) > -1 ) )
     {
     Tmp_bo_7 = true;
     }
    else
     {
     Tmp_bo_7 = false;
     }
    if ( !(Tmp_bo_7) )
     {
     total_bo_114 = false ;
   }}}
  return;
  }
 if ((total_bo_102) )  return;
 total_bo_111 = true ;
 total_in_112 = 3 ;
 }

 bool lizong_7()
 {
 bool        Sub_bo_1;
 long        Sub_lo_2;
 long        Sub_lo_3;
 long        Sub_lo_4;
 long        Sub_lo_5;

 long       Tmp_lo_1;
 string     Tmp_st_3;
 long       Lin_lo_2;
 string     Lin_st_6;
 long       Lin_lo_5;
 string     Lin_st_9;

 Sub_bo_1 = true ;
 if ( total_bo_5 )
  {
  Sub_lo_2 = StringToTime(total_st_81) ;
  Sub_lo_3 = StringToTime(total_st_82) ;
  Sub_lo_4 = StringToTime(total_st_83) ;
  Sub_lo_5 = StringToTime(total_st_84) ;
  if ( ( ( TimeCurrent() > Sub_lo_2 && TimeCurrent() < Sub_lo_3 ) || (TimeCurrent() > Sub_lo_4 && TimeCurrent() <  Sub_lo_5) ) )
   {
   Sub_bo_1 = false ;
  }}
 if ( StopTradingOnFridayClosing && DayOfWeek() >= 5 )
  {
  Tmp_lo_1 = TimeCurrent();
  Tmp_st_3 = IntegerToString(total_in_75);
  if ( StringLen(IntegerToString(total_in_75))  == 1 )
   {
   Tmp_st_3 = "000" + IntegerToString(total_in_75);
   }
  if ( StringLen(Tmp_st_3)  == 2 )
   {
   Tmp_st_3 = "00" + Tmp_st_3;
   }
  if ( StringLen(Tmp_st_3)  == 3 )
   {
   Tmp_st_3 = "0" + Tmp_st_3;
   }
  if ( Tmp_lo_1 >= StringToTime(StringSubstr(Tmp_st_3,0,2) + ":" + StringSubstr(Tmp_st_3,2,2)) )
   {
   Sub_bo_1 = false ;
  }}
 if ( StopTradingOnMondayOpening )
  {
  if ( total_in_76 <= total_in_4 )
   {
   if ( DayOfWeek() == 0 )
    {
    Sub_bo_1 = false ;
    }
   if ( DayOfWeek() == 1 )
    {
    Lin_lo_2 = TimeCurrent();
    Lin_st_6 = IntegerToString(total_in_76);
    if ( StringLen(IntegerToString(total_in_76))  == 1 )
     {
     Lin_st_6 = "000" + IntegerToString(total_in_76);
     }
    if ( StringLen(Lin_st_6)  == 2 )
     {
     Lin_st_6 = "00" + Lin_st_6;
     }
    if ( StringLen(Lin_st_6)  == 3 )
     {
     Lin_st_6 = "0" + Lin_st_6;
     }
    if ( Lin_lo_2 <  StringToTime(StringSubstr(Lin_st_6,0,2) + ":" + StringSubstr(Lin_st_6,2,2)) )
     {
     Sub_bo_1 = false ;
   }}}
  else
   {
   if ( DayOfWeek() == 0 )
    {
    Lin_lo_5 = TimeCurrent();
    Lin_st_9 = IntegerToString(total_in_76);
    if ( StringLen(IntegerToString(total_in_76))  == 1 )
     {
     Lin_st_9 = "000" + IntegerToString(total_in_76);
     }
    if ( StringLen(Lin_st_9)  == 2 )
     {
     Lin_st_9 = "00" + Lin_st_9;
     }
    if ( StringLen(Lin_st_9)  == 3 )
     {
     Lin_st_9 = "0" + Lin_st_9;
     }
    if ( Lin_lo_5 <  StringToTime(StringSubstr(Lin_st_9,0,2) + ":" + StringSubstr(Lin_st_9,2,2)) )
     {
     Sub_bo_1 = false ;
  }}}}
 return(Sub_bo_1); 
 }

 bool lizong_8 (int Wood_0,int Mu_1)
 {
 bool        Sub_bo_1;
 string      Zi_st_2;
 string      Zi_st_3;
 string      Zi_st_4;
 int         Zi_in_5;
 int         Zi_in_6;
 int         Zi_in_7;
 string      Zi_st_8;
 string      Zi_st_9;
 string      Zi_st_10;
 int         Zi_in_11;

 Sub_bo_1 = true ;
 if ( MinimizeRiskCorrelation && !(IsTesting()) && !(IsOptimization()) )
  {
  Zi_st_2 = Symbol() ;
  if ( SymbolPrefix  !=  "" )
   {
   Zi_st_2 = StringSubstr(Zi_st_2,StringLen(SymbolPrefix) ,6) ;
   }
  Zi_st_3 = StringSubstr(Zi_st_2,0,3) ;
  Zi_st_4 = StringSubstr(Zi_st_2,3,3) ;
  for (Zi_in_7 = OrdersTotal() - 1 ; Zi_in_7 >= 0 ; Zi_in_7 = Zi_in_7 - 1)
   {
   if ( !(OrderSelect(Zi_in_7,SELECT_BY_POS,MODE_TRADES)) )
    break;
   if ( OrderMagicNumber() == Mu_1 )
    {
    Zi_st_8 = OrderSymbol() ;
    if ( SymbolPrefix  !=  "" )
     {
     Zi_st_8 = StringSubstr(Zi_st_8,StringLen(SymbolPrefix) ,6) ;
     }
    Zi_st_9 = StringSubstr(Zi_st_8,0,3) ;
    Zi_st_10 = StringSubstr(Zi_st_8,3,3) ;
    Zi_in_11 = OrderType() ;
    if ( ( ( Zi_st_3 == Zi_st_9 && Wood_0 == Zi_in_11 ) || (Zi_st_3 == Zi_st_10 && Wood_0  !=  Zi_in_11) ) )
     {
     Zi_in_5 = Zi_in_5 + 1;
     }
    if ( ( ( Zi_st_4 == Zi_st_10 && Wood_0 == Zi_in_11 ) || (Zi_st_4 == Zi_st_9 && Wood_0  !=  Zi_in_11) ) )
     {
     Zi_in_6 = Zi_in_6 + 1;
     }
    if ( ( Zi_in_5 >= MaxCorrelatedTradesPerCurrency || Zi_in_6 >= MaxCorrelatedTradesPerCurrency ) )
     {
     Sub_bo_1 = false ;
     }
    }
   }
  }
 return(Sub_bo_1); 
 }

 int lizong_9 (string Wood_0,long Mu_1)
 {
 int         Zi_in_1;
 int         Zi_in_2;

 Zi_in_2 = TimeDay(Mu_1) + TimeMonth(Mu_1) * 100;
 if ( Wood_0 == "US" )
  {
  if ( Zi_in_2 > 310 && Zi_in_2 <  1103 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 311 && Zi_in_2 <  1104 && TimeYear(Mu_1) == 2007 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 309 && Zi_in_2 <  1102 && TimeYear(Mu_1) == 2008 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 308 && Zi_in_2 <  1101 && TimeYear(Mu_1) == 2009 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 314 && Zi_in_2 <  1107 && TimeYear(Mu_1) == 2010 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 313 && Zi_in_2 <  1106 && TimeYear(Mu_1) == 2011 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 311 && Zi_in_2 <  1104 && TimeYear(Mu_1) == 2012 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 310 && Zi_in_2 <  1103 && TimeYear(Mu_1) == 2013 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 309 && Zi_in_2 <  1102 && TimeYear(Mu_1) == 2014 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 308 && Zi_in_2 <  1101 && TimeYear(Mu_1) == 2015 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 313 && Zi_in_2 <  1106 && TimeYear(Mu_1) == 2016 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 312 && Zi_in_2 <  1105 && TimeYear(Mu_1) == 2017 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 311 && Zi_in_2 <  1104 && TimeYear(Mu_1) == 2018 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 310 && Zi_in_2 <  1103 && TimeYear(Mu_1) == 2019 )
   {
   Zi_in_1 = 1 ;
  }}
 if ( Wood_0 == "Europe" )
  {
  if ( Zi_in_2 > 331 && Zi_in_2 <  1030 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 325 && Zi_in_2 <  1028 && TimeYear(Mu_1) == 2007 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 330 && Zi_in_2 <  1026 && TimeYear(Mu_1) == 2008 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 329 && Zi_in_2 <  1025 && TimeYear(Mu_1) == 2009 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 328 && Zi_in_2 <  1031 && TimeYear(Mu_1) == 2010 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 327 && Zi_in_2 <  1030 && TimeYear(Mu_1) == 2011 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 325 && Zi_in_2 <  1028 && TimeYear(Mu_1) == 2012 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 331 && Zi_in_2 <  1027 && TimeYear(Mu_1) == 2013 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 330 && Zi_in_2 <  1026 && TimeYear(Mu_1) == 2014 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 329 && Zi_in_2 <  1025 && TimeYear(Mu_1) == 2015 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 327 && Zi_in_2 <  1030 && TimeYear(Mu_1) == 2016 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 326 && Zi_in_2 <  1029 && TimeYear(Mu_1) == 2017 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 325 && Zi_in_2 <  1028 && TimeYear(Mu_1) == 2018 )
   {
   Zi_in_1 = 1 ;
   }
  if ( Zi_in_2 > 331 && Zi_in_2 <  1027 && TimeYear(Mu_1) == 2019 )
   {
   Zi_in_1 = 1 ;
  }}
 return(Zi_in_1); 
 }

 void lizong_10()
 {

 int        Lin_in_3;
 int        Lin_in_4;
 bool       Lin_bo_5;
 int        Lin_in_8;
 int        Lin_in_10;
 bool       Lin_bo_11;
 int        Lin_in_14;
 int        Lin_in_16;
 bool       Lin_bo_17;
 int        Lin_in_20;
 int        Lin_in_22;
 bool       Lin_bo_23;
 int        Lin_in_26;
 int        Lin_in_28;
 bool       Lin_bo_29;
 int        Lin_in_32;
 int        Lin_in_34;
 bool       Lin_bo_35;
 int        Lin_in_38;
 int        Lin_in_40;
 bool       Lin_bo_41;
 string     Lin_st_46;
 string     Lin_st_47;
 string     Lin_st_48;
 string     Lin_st_49;
 string     Lin_st_50;
 string     Lin_st_51;

 if ( GMT_autocalc )
  {
  total_in_40 = MathRound((TimeCurrent() - TimeGMT()) / 3600.0) ;
  }
 Lin_in_3 = total_in_41;
 Lin_in_4 = GMT_offset;
 if ( GMT_autocalc )
  {
  Lin_bo_5 = IsTesting();
  if ( !((Lin_bo_5 || IsOptimization())) )
   {
   Lin_in_4 = total_in_40;
  }}
 else
  {
  if ( DST == 1 )
   {
   Lin_in_4 = lizong_9("US",TimeCurrent()) + Lin_in_4;
   }
  if ( DST == 2 )
   {
   Lin_in_4 = lizong_9("Europe",TimeCurrent()) + Lin_in_4;
  }}
 Lin_in_3 = Lin_in_3 + Lin_in_4 * 100;
 if ( Lin_in_3 >= 2400 )
  {
  Lin_in_3 = Lin_in_3 - 2400;
  }
 if ( Lin_in_3 <  0 )
  {
  Lin_in_3 = Lin_in_3 + 2400;
  }
 total_in_70 = Lin_in_3 ;
 Lin_in_8 = total_in_42;
 Lin_in_10 = GMT_offset;
 if ( GMT_autocalc )
  {
  Lin_bo_11 = IsTesting();
  if ( !((Lin_bo_11 || IsOptimization())) )
   {
   Lin_in_10 = total_in_40;
  }}
 else
  {
  if ( DST == 1 )
   {
   Lin_in_10 = lizong_9("US",TimeCurrent()) + Lin_in_10;
   }
  if ( DST == 2 )
   {
   Lin_in_10 = lizong_9("Europe",TimeCurrent()) + Lin_in_10;
  }}
 Lin_in_8 = Lin_in_8 + Lin_in_10 * 100;
 if ( Lin_in_8 >= 2400 )
  {
  Lin_in_8 = Lin_in_8 - 2400;
  }
 if ( Lin_in_8 <  0 )
  {
  Lin_in_8 = Lin_in_8 + 2400;
  }
 total_in_71 = Lin_in_8 ;
 Lin_in_14 = total_in_6;
 Lin_in_16 = GMT_offset;
 if ( GMT_autocalc )
  {
  Lin_bo_17 = IsTesting();
  if ( !((Lin_bo_17 || IsOptimization())) )
   {
   Lin_in_16 = total_in_40;
  }}
 else
  {
  if ( DST == 1 )
   {
   Lin_in_16 = lizong_9("US",TimeCurrent()) + Lin_in_16;
   }
  if ( DST == 2 )
   {
   Lin_in_16 = lizong_9("Europe",TimeCurrent()) + Lin_in_16;
  }}
 Lin_in_14 = Lin_in_14 + Lin_in_16 * 100;
 if ( Lin_in_14 >= 2400 )
  {
  Lin_in_14 = Lin_in_14 - 2400;
  }
 if ( Lin_in_14 <  0 )
  {
  Lin_in_14 = Lin_in_14 + 2400;
  }
 total_in_72 = Lin_in_14 ;
 Lin_in_20 = total_in_7;
 Lin_in_22 = GMT_offset;
 if ( GMT_autocalc )
  {
  Lin_bo_23 = IsTesting();
  if ( !((Lin_bo_23 || IsOptimization())) )
   {
   Lin_in_22 = total_in_40;
  }}
 else
  {
  if ( DST == 1 )
   {
   Lin_in_22 = lizong_9("US",TimeCurrent()) + Lin_in_22;
   }
  if ( DST == 2 )
   {
   Lin_in_22 = lizong_9("Europe",TimeCurrent()) + Lin_in_22;
  }}
 Lin_in_20 = Lin_in_20 + Lin_in_22 * 100;
 if ( Lin_in_20 >= 2400 )
  {
  Lin_in_20 = Lin_in_20 - 2400;
  }
 if ( Lin_in_20 <  0 )
  {
  Lin_in_20 = Lin_in_20 + 2400;
  }
 total_in_73 = Lin_in_20 ;
 Lin_in_26 = total_in_9;
 Lin_in_28 = GMT_offset;
 if ( GMT_autocalc )
  {
  Lin_bo_29 = IsTesting();
  if ( !((Lin_bo_29 || IsOptimization())) )
   {
   Lin_in_28 = total_in_40;
  }}
 else
  {
  if ( DST == 1 )
   {
   Lin_in_28 = lizong_9("US",TimeCurrent()) + Lin_in_28;
   }
  if ( DST == 2 )
   {
   Lin_in_28 = lizong_9("Europe",TimeCurrent()) + Lin_in_28;
  }}
 Lin_in_26 = Lin_in_26 + Lin_in_28 * 100;
 if ( Lin_in_26 >= 2400 )
  {
  Lin_in_26 = Lin_in_26 - 2400;
  }
 if ( Lin_in_26 <  0 )
  {
  Lin_in_26 = Lin_in_26 + 2400;
  }
 total_in_74 = Lin_in_26 ;
 Lin_in_32 = total_in_3;
 Lin_in_34 = GMT_offset;
 if ( GMT_autocalc )
  {
  Lin_bo_35 = IsTesting();
  if ( !((Lin_bo_35 || IsOptimization())) )
   {
   Lin_in_34 = total_in_40;
  }}
 else
  {
  if ( DST == 1 )
   {
   Lin_in_34 = lizong_9("US",TimeCurrent()) + Lin_in_34;
   }
  if ( DST == 2 )
   {
   Lin_in_34 = lizong_9("Europe",TimeCurrent()) + Lin_in_34;
  }}
 Lin_in_32 = Lin_in_32 + Lin_in_34 * 100;
 if ( Lin_in_32 >= 2400 )
  {
  Lin_in_32 = Lin_in_32 - 2400;
  }
 if ( Lin_in_32 <  0 )
  {
  Lin_in_32 = Lin_in_32 + 2400;
  }
 total_in_75 = Lin_in_32 ;
 Lin_in_38 = total_in_4;
 Lin_in_40 = GMT_offset;
 if ( GMT_autocalc )
  {
  Lin_bo_41 = IsTesting();
  if ( !((Lin_bo_41 || IsOptimization())) )
   {
   Lin_in_40 = total_in_40;
  }}
 else
  {
  if ( DST == 1 )
   {
   Lin_in_40 = lizong_9("US",TimeCurrent()) + Lin_in_40;
   }
  if ( DST == 2 )
   {
   Lin_in_40 = lizong_9("Europe",TimeCurrent()) + Lin_in_40;
  }}
 Lin_in_38 = Lin_in_38 + Lin_in_40 * 100;
 if ( Lin_in_38 >= 2400 )
  {
  Lin_in_38 = Lin_in_38 - 2400;
  }
 if ( Lin_in_38 <  0 )
  {
  Lin_in_38 = Lin_in_38 + 2400;
  }
 total_in_76 = Lin_in_38 ;
 Lin_st_46 = IntegerToString(total_in_70);
 if ( StringLen(IntegerToString(total_in_70))  == 1 )
  {
  Lin_st_46 = "000" + IntegerToString(total_in_70);
  }
 if ( StringLen(Lin_st_46)  == 2 )
  {
  Lin_st_46 = "00" + Lin_st_46;
  }
 if ( StringLen(Lin_st_46)  == 3 )
  {
  Lin_st_46 = "0" + Lin_st_46;
  }
 total_st_77 = StringSubstr(Lin_st_46,0,2) + ":" + StringSubstr(Lin_st_46,2,2) ;
 total_st_79 = "00:00" ;
 if ( total_in_70 <  total_in_71 )
  {
  Lin_st_47 = IntegerToString(total_in_71);
  if ( StringLen(IntegerToString(total_in_71))  == 1 )
   {
   Lin_st_47 = "000" + IntegerToString(total_in_71);
   }
  if ( StringLen(Lin_st_47)  == 2 )
   {
   Lin_st_47 = "00" + Lin_st_47;
   }
  if ( StringLen(Lin_st_47)  == 3 )
   {
   Lin_st_47 = "0" + Lin_st_47;
   }
  total_st_78 = StringSubstr(Lin_st_47,0,2) + ":" + StringSubstr(Lin_st_47,2,2) ;
  total_st_80 = "00:00" ;
  }
 else
  {
  total_st_78 = "23:59" ;
  Lin_st_48 = IntegerToString(total_in_71);
  if ( StringLen(IntegerToString(total_in_71))  == 1 )
   {
   Lin_st_48 = "000" + IntegerToString(total_in_71);
   }
  if ( StringLen(Lin_st_48)  == 2 )
   {
   Lin_st_48 = "00" + Lin_st_48;
   }
  if ( StringLen(Lin_st_48)  == 3 )
   {
   Lin_st_48 = "0" + Lin_st_48;
   }
  total_st_80 = StringSubstr(Lin_st_48,0,2) + ":" + StringSubstr(Lin_st_48,2,2) ;
  }
 Lin_st_49 = IntegerToString(total_in_72);
 if ( StringLen(IntegerToString(total_in_72))  == 1 )
  {
  Lin_st_49 = "000" + IntegerToString(total_in_72);
  }
 if ( StringLen(Lin_st_49)  == 2 )
  {
  Lin_st_49 = "00" + Lin_st_49;
  }
 if ( StringLen(Lin_st_49)  == 3 )
  {
  Lin_st_49 = "0" + Lin_st_49;
  }
 total_st_81 = StringSubstr(Lin_st_49,0,2) + ":" + StringSubstr(Lin_st_49,2,2) ;
 total_st_83 = "00:00" ;
 if ( total_in_72 <  total_in_73 )
  {
  Lin_st_50 = IntegerToString(total_in_73);
  if ( StringLen(IntegerToString(total_in_73))  == 1 )
   {
   Lin_st_50 = "000" + IntegerToString(total_in_73);
   }
  if ( StringLen(Lin_st_50)  == 2 )
   {
   Lin_st_50 = "00" + Lin_st_50;
   }
  if ( StringLen(Lin_st_50)  == 3 )
   {
   Lin_st_50 = "0" + Lin_st_50;
   }
  total_st_82 = StringSubstr(Lin_st_50,0,2) + ":" + StringSubstr(Lin_st_50,2,2) ;
  total_st_84 = "00:00" ;
  return;
  }
 total_st_82 = "23:59" ;
 Lin_st_51 = IntegerToString(total_in_73);
 if ( StringLen(IntegerToString(total_in_73))  == 1 )
  {
  Lin_st_51 = "000" + IntegerToString(total_in_73);
  }
 if ( StringLen(Lin_st_51)  == 2 )
  {
  Lin_st_51 = "00" + Lin_st_51;
  }
 if ( StringLen(Lin_st_51)  == 3 )
  {
  Lin_st_51 = "0" + Lin_st_51;
  }
 total_st_84 = StringSubstr(Lin_st_51,0,2) + ":" + StringSubstr(Lin_st_51,2,2) ;
 }

 void lizong_11()
 {

 double     Lin_do_5;
 double     Lin_do_7;

 if ( Tot_lo_130 <  total_lo_118 )
  {
  Tot_lo_130=total_lo_118 + 60;
  lizong_10(); 
  HideTestIndicators(true); 
  Tot_do_122 = iBands(NULL,total_in_46,total_in_51,total_do_52,0,1,2,0) ;
  Tot_do_123 = iBands(NULL,total_in_46,total_in_51,total_do_52,0,1,1,0) ;
  Tot_do_124 = total_do_62 * total_do_89 + iBands(NULL,total_in_46,total_in_51,total_do_52,0,0,1,1) ;
  Tot_do_125 = iBands(NULL,total_in_46,total_in_51,total_do_52,0,0,2,1) - total_do_63 * total_do_89 ;
  Tot_do_127 = (Tot_do_123 - Tot_do_122) / total_do_89 ;
  Tot_do_122 = Tot_do_122 - total_do_53 * total_do_89 ;
  Tot_do_123 = Tot_do_123 + total_do_53 * total_do_89 ;
  if ( TimeCurrent() > total_lo_98 && TimeCurrent() <  total_lo_99 )
   {
   Tot_do_128 = (iHigh(NULL,PERIOD_D1,0) - iLow(NULL,PERIOD_D1,0)) / total_do_89 ;
   }
  if ( TimeCurrent() > total_lo_100 && TimeCurrent() <  total_lo_101 )
   {
   Tot_do_128 = (iHigh(NULL,PERIOD_D1,1) - iLow(NULL,PERIOD_D1,1)) / total_do_89 ;
  }}
 total_do_92 = MarketInfo(Symbol(),23) ;
 total_do_90 = MarketInfo(Symbol(),25) ;
 total_in_93 = MarketInfo(Symbol(),15) ;
 total_do_91 = MarketInfo(Symbol(),24) ;
 if ( MoneyManagement == 0 )
  {
  total_do_1 = Auto_Risk ;
  }
 if ( MoneyManagement == 1 )
  {
  Lin_do_5 = MathFloor(AccountBalance() * Auto_Risk / 100.0 / MarketInfo(Symbol(),16) / (total_in_43 * total_do_89 / Point()) / total_do_91) * total_do_91;
  if ( total_do_90 >= MathFloor(AccountBalance() * Auto_Risk / 100.0 / MarketInfo(Symbol(),16) / (total_in_43 * total_do_89 / Point()) / total_do_91) * total_do_91 )
   {
   Lin_do_5 = Lin_do_5;
   }
  else
   {
   Lin_do_5 = total_do_90;
   }
  total_do_1 = MathMax(total_do_92,Lin_do_5) ;
  }
 if ( MoneyManagement == 2 )
  {
  if ( Auto_Risk <= 100 )
   {
   Lin_do_5 = Auto_Risk;
   }
  else
   {
   Lin_do_5 = 100.0;
   }
  Lin_do_7 = MathCeil(Lin_do_5 / 100.0 * AccountBalance() / total_do_91 / (total_in_93 / 100)) * total_do_91;
  if ( total_do_90 >= MathCeil(Lin_do_5 / 100.0 * AccountBalance() / total_do_91 / (total_in_93 / 100)) * total_do_91 )
   {
   Lin_do_7 = Lin_do_7;
   }
  else
   {
   Lin_do_7 = total_do_90;
   }
  total_do_1 = MathMax(total_do_92,Lin_do_7) ;
  }
 HideTestIndicators(true); 
 Tot_do_121 = iCCI(NULL,1,total_in_47,total_in_48,0) ;
 Tot_do_126 = iMA(NULL,1,255,0,MODE_SMMA,PRICE_CLOSE,0) ;
 total_do_120 = (Ask - Bid) / total_do_89 ;
 }

 void lizong_12 (int Wood_0,double Mu_1,double   Mu_2,string Mu_3, int  x4)
 {
 int         Zi_in_1;
 string      Zi_st_2;
 uint        Zi_ui_3;
 int         Zi_in_4;
 int         Zi_in_5;
 int         Zi_in_6;
 int         Zi_in_7;
 double      Zi_do_8;
 double      Zi_do_9;

 string     Lin_st_5;
 double     Lin_do_6;
 int        Lin_in_7;
 int        Lin_in_10;
 int        Tmp_in_12;
 double     Lin_do_13;
 double     Lin_do_16;
 int        Lin_in_19;
 int        Lin_in_22;
 double     Lin_do_23;
 string     Lin_st_24;
 int        Lin_in_26;
 double     Lin_do_28;

 if ( AccountFreeMarginCheck(Symbol(),1,total_do_1)>0.0 )
  {
  RefreshRates(); 
  Zi_st_2 = Mu_3 ;
  if ( Zi_st_2 == "NONE" )
   {
   Zi_in_1 = Digits() ;
   Zi_st_2 = Symbol() ;
   }
  else
   {
   Zi_in_1 = MarketInfo(Zi_st_2,12) ;
   }
  if ( Wood_0 == 0 )
   {
   Mu_2 = NormalizeDouble(MarketInfo(Zi_st_2,10),Zi_in_1) ;
   Zi_ui_3 = Blue ;
   }
  if ( Wood_0 == 1 )
   {
   Mu_2 = NormalizeDouble(MarketInfo(Zi_st_2,9),Zi_in_1) ;
   Zi_ui_3 = Red ;
   }
  for ( ; Zi_in_5 <= 5 ; Zi_in_5 = Zi_in_5 + 1)
   {
   RefreshRates(); 
   PrintFormat("Spread on entry: " + DoubleToString(total_do_120,2)); 
   Zi_in_6 = OrderSend(Zi_st_2,Wood_0,Mu_1,NormalizeDouble(Mu_2,Zi_in_1),total_in_10 * total_in_115,0.0,0.0,Comment,MagicNumber,0,Zi_ui_3) ;

   if ( Zi_in_6  !=  -1 )
    {
    Zi_in_4 = 0 ;
    if ( !(IsTesting()) )
     {
     Sleep(1000); 
     }
    RefreshRates();    
    if ( ( total_in_43 == 0 || total_in_44 == 0 ) )
     break;      
    for ( ; Zi_in_7 <= 5 ; Zi_in_7 = Zi_in_7 + 1)
     {
     RefreshRates(); 
     if ( OrderSelect(Zi_in_6,SELECT_BY_TICKET,MODE_TRADES) )
      {
      Lin_st_5 = Zi_st_2;
      Lin_do_6 = Mu_2;
      Lin_in_7

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

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

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

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

Стоимость полного кода
5 443,90₽ ≈ $66.54