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

north east way1.306_.mq4

Похожие материалы по тегам

north east way1.306@lifeindreamsworld.mq4MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

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

#property version    "1.306"
#property strict
#property description  "Advisor trade the average price return on non-trending pairs correlated with each other.\nUse ECN accounts with a minimum spread and commissions.\nWhen EA trades, many small transactions are simultaneously opened on the account.\nThis allows you to diversify trading entrances and exits from the market."

enum TypeOfSets      {Multi_Sets_123_sbig_15adv = 7,Multi_Sets_123_small_3adv = 6,Multi_Sets_123_big_9adv = 5,Multi_Set_3_3advisors = 4,Multi_Set_2_3advisors = 3,Multi_Set_1_3advisors = 2,Custom = 1  };
enum NY_Weekends      {days_0 = 2,days_7 = 1,days_14 = 0  };
enum FirstPositiontype      {NotOpen = 4,Short = 3,Long = 2,Long_and_Short = 1  };
enum TypeBFLC      {balance = 1,equity = 0  };
enum typeord      {all = -1,sell_stop = 5,buy_stop = 4,sell_limit = 3,buy_limit = 2,sell = 1,buy = 0  };

struct _sets
  {
   string            st_1;
   int               in_2;
   double            do_3;
   double            do_4;
   double            do_5;
   double            do_6;
   double            do_7;
   double            do_8;
   void              _sets_8();
   void              _sets_9();
   void              _sets_10();
   void              _sets_11();
  };

extern string _base_="=========Basic settings========="  ;
extern string MultiCurrency=""  ;   //OneChartSetup multi currency mode.
extern string comment="new"  ;   //Prefix for comment
extern  FirstPositiontype  FirstPositionp=1  ;    //First Position
extern bool fastClose=false ;    //Emergency closing at breakeven
extern int   nmbrThisServer=1  ;    //For magic: 0 to 99
extern  NY_Weekends  holidays=0  ;    //Duration of the weekend after the New Year
extern bool useVirtualTP=false ;    //Using a virtual take-profit?
extern string _mm_="=========Money Management Settings========="  ;
extern int   MaxOtherMagics=0  ;    //Number of magics no more:
extern int   MaxOtherSymbols=0  ;    //Number of symbols no more:
extern  TypeBFLC  BaseForLotCalc=0  ;    //For autolot use
extern double virtBalance=0  ;    //Additional funds in account currency
extern double fix_balance=0  ;    //Or use fix balance in account currency
extern double USD_for_001=0  ;    //AutoMM. Aggressive=1000, Conservative=5000.
extern double Lots=0.01  ;    //Fix lot if AutoMM=0
extern string _aver_="=========Averaging Settings========="  ;
extern bool UseUnloss=true  ;    //Recovery Mode
extern double LotsMartinp=2.5  ;    //Martin ratio
extern string _grid_="=========Grid Level Settings========="  ;
extern int   FirstNumberp=3  ;    //First real deal from this level n>=0
string    global_1_st = "1.306";
_sets     global_2_a_160_ko[];
int       global_3_in = 7;
string    global_4_st = "";
int       global_5_in = 15;
bool      global_6_bo = true;
int       global_7_in = 0;
int       global_8_in = 1;
int       global_9_in = -858993459;
int       global_10_in = 1072745676;
int       global_11_in = 1717986918;
short     global_12_sh = 1072719462;
string    global_13_st = "=========Execution Settings=========";
int       global_14_in = 0;
int       global_15_in = 0;
bool      global_16_bo = true;
double    global_17_do = 0.0;
int       global_18_in = 0;
int       global_19_in = 400;
int       global_20_in = 800;
double    global_21_do = 1.4;
int       global_22_in = 14;
double    global_23_do = 0.0143;
bool      global_24_bo = true;
int       global_25_in = 0;
int       global_26_in = 0;
int       global_27_in = 0;
double    global_28_do = 0.7;
double    global_29_do = 0.9;
int       global_30_in = 70;
double    global_31_do = 1.5;
double    global_32_do = 0.9;
double    global_33_do = 0.0;
double    global_34_do = 0.0;
double    global_35_do = 1.0;
double    global_36_do = 1.0;
double    global_37_do = 100.0;
string    global_38_st = "Настройки ограничения лота";
bool      global_39_bo = true;
double    global_40_do = 100.0;
bool      global_41_bo = true;
double    global_42_do = 0.0;
int       global_43_in = 70;
int       global_44_in = 50;
int       global_45_in = 6;
string    global_46_st = "=========Tester Settings=========";
bool      global_47_bo = false;
bool      global_48_bo = false;
bool      global_49_bo = false;
string    global_50_st = "";
int       global_51_in = 0;
int       global_52_in = 0;
double    global_53_do = 0.0;
int       global_54_in = 0;
double    global_55_do = 0.0;
double    global_56_do = 0.0;
double    global_57_do = 0.0;
double    global_58_do = 0.0;
int       global_59_in = 0;
int       global_60_in = 0;
int       global_61_in = 0;
int       global_62_in = 0;
int       global_63_in = 0;
int       global_64_in = 0;
int       global_65_in = 0;
int       global_66_in = 0;
int       global_67_in = 0;
int       global_68_in = 0;
double    global_69_do = 0.0;
int       global_70_in = 0;
int       global_71_in = 0;
double    global_72_in = 0;
int       global_73_in = 0;
int       global_74_in = 0;
int       global_75_in = 0;
int       global_76_in = 0;
bool      global_77_bo = false;
int       global_78_in_si100si15[100][15];
int       global_79_in = 0;
int       global_80_in = 0;
int       global_81_in = 0;
int       global_82_in = 0;
int       global_83_in = 0;
int       global_84_in = 0;
double    global_85_do_si7si10000[7][10000];
string    global_86_st_si40000[40000]= {};
int       global_87_in_si40000[40000];
int       global_88_in = 0;
int       global_89_in = 0;
int       global_90_in = 0;
double    global_91_do = 0.0;
double    global_92_do = 0.0;
string    global_93_st;
int       global_94_in = 0;
int r1;
int       global_95_in = 0;
int       global_96_in = 0;
int       global_97_in = 0;
int       global_98_in = 1;
string    global_99_st_si1[1]= {};
double    global_100_do_si1[1];
bool      global_101_bo = true;
int       global_102_in = 0;
int       global_103_in = 0;
bool      global_104_bo = false;
bool      global_105_bo = false;
int       global_106_in = 0;
int       global_107_in = 0;
int       global_108_in = 0;
int       global_109_in = 0;
string    global_110_st;
string    global_111_st;
string    global_112_st = "";
string    global_113_st = "";
int       global_114_in = 2263842;
int       global_115_in = 0;
int       global_116_in = 0;
string    global_117_st = "no_drawdown";
int       global_118_in = 0;
int       global_119_in = 0;
string    global_120_st = "";
bool      global_121_bo = false;
double    global_122_do_si6si5si2[6][5][2];
bool      global_123_bo = true;
string    global_124_st_ko[];
double    global_125_do = 0.0;
double    global_126_do = 0.0;
double    global_127_do = 0.0;
double    global_128_do = 0.0;
double    global_129_do = 0.0;
double    global_130_do = 0.0;
double    global_131_do_ko[];

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

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

void OnTimer()
  {
   if(IsTesting())
      return;
   fun_27();
  }

double OnTester()
  {
   ArrayResize(global_131_do_ko,global_89_in - 1,0);
   for(int local_2_in = 1 ; local_2_in < global_89_in ; local_2_in ++)
     {
      global_131_do_ko[local_2_in - 1] = global_85_do_si7si10000[3][local_2_in] / global_85_do_si7si10000[3][local_2_in - 1] - 1.0;
     }
   ArraySetAsSeries(global_131_do_ko,true);
   double local_3_do = iMAOnArray(global_131_do_ko,0,global_89_in - 1,0,0,0) ;
   double local_4_do = iStdDevOnArray(global_131_do_ko,0,global_89_in - 1,0,0,0) ;
   if(local_4_do!=0.0)
     {
      return(local_3_do / local_4_do);
     }
   return(0.0);
  }

int deinit()
  {
   if(IsTesting() && global_47_bo)
     {
      fun_22();
     }
   if(IsTesting() && global_48_bo)
     {
      fun_21();
     }
   for(int local_2_in = 0 ; local_2_in < global_98_in ; local_2_in ++)
     {
      global_50_st = global_99_st_si1[local_2_in] ;
      for(int local_3_in = 1 ; local_3_in <= global_8_in ; local_3_in ++)
        {
         global_93_st = IntegerToString(local_3_in,2,48) ;
         global_26_in = StringToInteger((StringLen(global_50_st)  != 6)?"99":fun_20(StringSubstr(global_50_st,0,3)) + fun_20(StringSubstr(global_50_st,3,3)) + global_93_st) ;
         if(IsTesting())
           {
            GlobalVariableDel(string(IsTesting()) + "NUMBER" + global_50_st + string(global_26_in));
            GlobalVariableDel(string(IsTesting()) + "iBands_period" + global_50_st + string(global_26_in));
            GlobalVariableDel(string(IsTesting()) + "Distance_Price" + global_50_st + string(global_26_in));
            GlobalVariableDel(string(IsTesting()) + global_50_st + string(global_26_in) + "peak");
            GlobalVariableDel(string(IsTesting()) + "Magic" + global_50_st + string(global_26_in));
            GlobalVariableDel(string(IsTesting()) + global_50_st + string(global_26_in) + "tp");
            GlobalVariableDel(string(IsTesting()) + global_50_st + "0" + string(global_26_in));
            GlobalVariableDel(string(IsTesting()) + global_50_st + "1" + string(global_26_in));
           }
        }
     }
   return(0);
  }

int fun_12()
  {

   int       local_2_in = 0;

   global_129_do = MarketInfo(global_50_st,13) ;
   global_125_do = MarketInfo(global_50_st,13) * MarketInfo(global_50_st,11) ;
   global_126_do = MarketInfo(global_50_st,10) ;
   global_127_do = MarketInfo(global_50_st,9) ;
   global_128_do = MarketInfo(global_50_st,11) ;
   global_130_do = 0.0 ;
   if(iClose(global_50_st,0,1)>0.0)
     {
      global_130_do = (MathAbs(global_127_do / iClose(global_50_st,0,1) - 1.0)) * 10000.0 ;
     }
   if(global_127_do>global_55_do)
     {
      ObjectDelete(0,"DD");
      if((FirstPositionp == 1 || FirstPositionp == 3))
        {
         local_2_in = 2 ;
         global_53_do = 0.00001 / global_128_do * MathPow(global_31_do,MathLog(global_18_in / 100.0) / 0.6931471805599) * global_30_in / MathPow(global_31_do,2.0) * global_127_do + global_28_do * MathPow(global_29_do,global_14_in) * (global_127_do - global_56_do) / global_128_do ;
        }
     }
   if(global_126_do<global_57_do)
     {
      ObjectDelete(0,"DD");
      if((FirstPositionp == 1 || FirstPositionp == 2))
        {
         local_2_in = 1 ;
         global_53_do = 0.00001 / global_128_do * MathPow(global_31_do,MathLog(global_18_in / 100.0) / 0.6931471805599) * global_30_in / MathPow(global_31_do,2.0) * global_127_do + global_28_do * MathPow(global_29_do,global_14_in) * (global_56_do - global_127_do) / global_128_do ;
        }
     }
   return(local_2_in);
  }

void fun_13()
  {

   global_58_do = iStdDev(global_50_st,0,global_18_in,1,3,0,-1) * global_21_do ;
   if(global_24_bo == true)
     {
      double local_1_do = funs11(global_14_in, global_18_in) ;

      if(local_1_do>0.0)
        {
         global_58_do = MathMax(global_58_do,local_1_do) ;
        }
     }
   global_56_do = iMA(global_50_st,0,global_18_in,1,3,0,-1) ;

   global_55_do = global_56_do + global_58_do ;
   global_57_do = global_56_do - global_58_do ;
   global_52_in = global_27_in ;
  }

void fun_14(double para_0_do,double para_1_do,double para_2_do,datetime para_3_房da)
  {
   bool      local_1_bo = false;
   double    local_2_do = 0.0;
   double    local_3_do = 0.0;
   double    local_4_do = 0.0;
   double    local_5_do = 0.0;
   double    local_6_do = 0.0;

   int local_7_in = MarketInfo(OrderSymbol(),12) ;
   int local_8_in = 0 ;
   int local_9_in = 0 ;
   string local_10_st = " Автор функции для:" ;
   if(para_0_do<=0.0)
     {
      para_0_do = OrderOpenPrice() ;
     }
   if(para_1_do<0.0)
     {
      para_1_do = OrderStopLoss() ;
     }
   if(para_2_do<0.0)
     {
      para_2_do = OrderTakeProfit() ;
     }
   para_0_do = NormalizeDouble(para_0_do,local_7_in) ;
   para_1_do = NormalizeDouble(para_1_do,local_7_in) ;
   para_2_do = NormalizeDouble(para_2_do,local_7_in) ;
   local_2_do = NormalizeDouble(OrderOpenPrice(),local_7_in) ;
   local_5_do = NormalizeDouble(OrderStopLoss(),local_7_in) ;
   local_6_do = NormalizeDouble(OrderTakeProfit(),local_7_in) ;
   if((!(para_0_do!=local_2_do) && !(para_1_do!=local_5_do) && !(para_2_do!=local_6_do)))
      return;
   for(local_9_in = 1 ; local_9_in <= 5 ; local_9_in ++)
     {
      if((!(IsTesting()) && (!(IsExpertEnabled()) || IsStopped() != 0)))
         return;
      RefreshRates();
      local_1_bo = OrderModify(OrderTicket(),para_0_do,para_1_do,para_2_do,para_3_房da,-1) ;
      if(local_1_bo)
         return;
      local_8_in = GetLastError() ;
      local_3_do = MarketInfo(OrderSymbol(),10) ;
      local_4_do = MarketInfo(OrderSymbol(),9) ;
      PrintFormat("Error(" + string(local_8_in) + ") modifying order: " + fun_18(local_8_in) + ", try " + string(local_9_in));
      PrintFormat("Ask=" + string(local_3_do) + "  Bid=" + string(local_4_do) + "  sy=" + OrderSymbol() + "  op=" + string(OrderType()) + "  pp=" + string(para_0_do) + "  sl=" + string(para_1_do) + "  tp=" + string(para_2_do));
      do
        {
         if((local_8_in != 146 || !(IsTradeContextBusy())))
            continue;
         Sleep(500);
        }
      while(IsTradeContextBusy());

     }
  }

int fun_15(string para_0_st,int para_1_in,double para_2_do,double para_3_do,double para_4_do,int para_5_in,string para_6_st,double para_7_do)
  {
   int       local_1_in;
   color     local_2_co = 0;
   long      local_3_lo = 0;
   double    local_4_do = 0.0;
   double    local_5_do = 0.0;
   double    local_6_do = 0.0;
   double    local_7_do = 0.0;
   int       local_8_in = 0;
   int       local_9_in = 0;
   int       local_10_in = 0;
   int       local_11_in = 0;
   string    local_12_st;
   string    local_13_st;
   double    local_14_do;
   double    local_15_do;
   string    local_16_st;
   MqlDateTime local_17_a_129;
   MqlDateTime local_18_a_129;

   string     tmp_st_1;
   bool       tmp_bo_2;
   string     tmp_st_3;
   bool       tmp_bo_4;
   bool       tmp_bo_5;
   string     tmp_st_6;
   bool       tmp_bo_7;
   bool       tmp_bo_8;
   string     tmp_st_9;
   bool       tmp_bo_10;
   bool       tmp_bo_11;
   bool       tmp_bo_12;
   bool       tmp_bo_13;
   double     tmp_do_14;
   bool       tmp_bo_15;
   bool       tmp_bo_16;
   int        tmp_in_17;
   int        tmp_in_18;
   string     tmp_st_19;
   int        tmp_in_20;
   int        tmp_in_21;
   string     tmp_st_22;
   int        tmp_in_23;
   bool       tmp_bo_24;

   local_12_st = "" ;
   if((para_0_st == "" || para_0_st == "0"))
     {
      para_0_st = global_50_st ;
     }
   if(para_1_in == 0)
     {
      local_2_co = 32768 ;
     }
   else
     {
      local_2_co = 255 ;
     }
   local_13_st = " Автор функции: " ;
   local_14_do = para_2_do ;
   local_15_do = 0.0 ;
   if(AccountFreeMarginCheck(para_0_st,para_1_in,para_2_do)<0.0)
     {
      tmp_st_1 = (para_1_in == 0) ?"Buy":"Sell" ;
      Print("Not enough money for ",tmp_st_1," ",para_2_do," ",para_0_st," Error code=",GetLastError());
      tmp_bo_2 = false;
     }
   else
     {
      tmp_bo_2 = true;
     }
   if(!(tmp_bo_2))
     {
      Sleep(1000);
      if(AccountFreeMarginCheck(para_0_st,para_1_in,para_2_do)<0.0)
        {
         tmp_st_3 = (para_1_in == 0) ?"Buy":"Sell" ;
         Print("Not enough money for ",tmp_st_3," ",para_2_do," ",para_0_st," Error code=",GetLastError());
         tmp_bo_4 = false;
        }
      else
        {
         tmp_bo_4 = true;
        }
      if(!(tmp_bo_4))
        {
         return(-1);
        }
     }
   if(AccountInfoInteger(ACCOUNT_LIMIT_ORDERS) == 0)
     {
      tmp_bo_5 = true;
     }
   else
     {
      tmp_bo_5 = OrdersTotal()<AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
     }
   if(!(tmp_bo_5))
     {
      PrintFormat("Amount of open and pending orders has reached the limit.");
      return(-1);
     }
   if((MQLInfoString(MQL_PROGRAM_NAME) == "North East Way EA" || MQLInfoString(MQL_PROGRAM_NAME) == "NorthEastWay_v" + global_1_st || MQLInfoString(MQL_PROGRAM_NAME) == "NorthEastWay" || MQLInfoString(MQL_PROGRAM_NAME) == "NorthEastWay EA crypto"))
     {
      tmp_bo_7 = true;
     }
   else
     {
      tmp_bo_7 = false;
     }

   TimeToStruct(iTime(NULL,0,0),local_17_a_129);
   if(((local_17_a_129.year >  2021 && local_17_a_129.mon > 6) || local_17_a_129.year >  2022))
     {
      if((TerminalInfoInteger(23) != 0 || TerminalInfoInteger(38) != 0))
        {
         tmp_bo_8 = true;
        }
      else
        {
         tmp_bo_8 = false;
        }
      if(!(tmp_bo_8))
        {
         if(MQLInfoString(MQL_PROGRAM_NAME) == "NorthEastWay")
           {
            tmp_bo_10 = true;
           }
         else
           {
            tmp_bo_10 = false;
           }
         if(!(tmp_bo_10))
           {
            tmp_bo_11 = false;
           }
        }
     }
   else
     {
      tmp_bo_11 = true;
     }
   if((!(tmp_bo_7) || !(tmp_bo_11)) && !(IsTesting()) && AccountInfoInteger(ACCOUNT_TRADE_MODE) == 2 && para_2_do>0.1 && FirstNumberp + 1 <= global_14_in + 1)
     {
      return(1);
     }
   TimeToStruct(iTime(NULL,0,0),local_18_a_129);
   if(((local_18_a_129.year >  2021 && local_18_a_129.mon > 12) || local_18_a_129.year >  2022))
     {
      tmp_bo_12 = false;
     }
   else
     {
      tmp_bo_12 = true;
     }
   if(!(tmp_bo_12) && !(IsTesting()) && para_2_do>0.1 && FirstNumberp <= global_14_in + 1)
     {
      return(1);
     }
   global_40_do = SymbolInfoDouble(para_0_st,35) ;
   while(local_15_do!=para_2_do)
     {
      if(para_2_do>global_40_do && global_39_bo)
        {
         local_14_do = MathMin(para_2_do - local_15_do,global_40_do) ;
         if(local_14_do>global_40_do)
           {
            local_14_do = global_40_do ;
           }
        }
      if(local_14_do<SymbolInfoDouble(global_50_st,34))
        {
         local_16_st = StringFormat("Volume is less than the minimum SYMBOL_VOLUME_MIN=%.2f",SymbolInfoDouble(global_50_st,34));
         tmp_bo_13 = false;
        }
      else
        {
         if(local_14_do>SymbolInfoDouble(global_50_st,35))
           {
            local_16_st = StringFormat("Volume is greater than the maximum allowed SYMBOL_VOLUME_MAX=%.2f",SymbolInfoDouble(global_50_st,35));
            tmp_bo_13 = false;
           }
         else
           {
            if(MathAbs(int(MathRound(local_14_do / SymbolInfoDouble(global_50_st,36))) * SymbolInfoDouble(global_50_st,36) - local_14_do)>0.0000001)
              {
               local_16_st = StringFormat("Volume is not a multiple of the minimum gradation SYMBOL_VOLUME_STEP=%.2f, nearest correct volume %.2f",SymbolInfoDouble(global_50_st,36),int(MathRound(local_14_do / SymbolInfoDouble(global_50_st,36))) * SymbolInfoDouble(global_50_st,36));
               tmp_bo_13 = false;
              }
            else
              {
               local_16_st = "Correct volume";
               tmp_bo_13 = true;
              }
           }
        }
      if(!(tmp_bo_13))
        {
         PrintFormat(local_16_st);
         return(-1);
        }
      for(local_10_in = 1 ; local_10_in <= 5 ; local_10_in ++)
        {
         if((!(IsTesting()) && (!(IsExpertEnabled()) || IsStopped() != 0)))
            break;

         while(!(IsTradeAllowed()))
           {
            if(IsTesting() || IsOptimization())
               continue;
            Sleep(5000);

           }
         RefreshRates();
         local_8_in = MarketInfo(para_0_st,12) ;
         local_5_do = MarketInfo(para_0_st,10) ;
         local_6_do = MarketInfo(para_0_st,9) ;
         local_7_do = MarketInfo(para_0_st,13) * MarketInfo(para_0_st,11) / local_6_do * 10000.0 ;
         if(para_1_in == 0)
           {
            local_4_do = local_5_do ;
           }
         else
           {
            local_4_do = local_6_do ;
           }
         local_4_do = NormalizeDouble(local_4_do,local_8_in) ;
         local_3_lo = TimeCurrent() ;

         if((para_1_in==0 && local_5_do<=para_7_do) && (para_1_in==1 && local_6_do>=para_7_do) && (para_7_do==0.0))

           {
            Print("Price does not match the distance, try ",local_10_in);
            Print("Ask=",local_5_do," Bid=",local_6_do," sy=",para_0_st," lot=",local_14_do," op=",para_1_in," pp=",local_4_do," sl=",para_3_do," tp=",para_4_do," mn=",para_5_in," price_dist=",para_7_do);
            Sleep(7700);
            continue;
           }
         if(global_17_do>0.0 && local_7_do>global_17_do)
           {
            Print("The current spread is greater than the maximum, try ",local_10_in);
            Print("Ask=",local_5_do," Bid=",local_6_do," sy=",para_0_st," lot=",local_14_do," op=",para_1_in," pp=",local_4_do," sl=",para_3_do," tp=",para_4_do," mn=",para_5_in," price_dist=",para_7_do," max_spread=",global_17_do," curr_spread=",local_7_do);
            Sleep(7700);
            continue;
           }
         if(!(global_16_bo))
           {
            local_11_in = OrderSend(para_0_st,para_1_in,local_14_do,local_4_do,global_15_in,para_3_do,para_4_do,comment + "_" + para_6_st,para_5_in,0,local_2_co) ;
           }
         if(global_16_bo)
           {
            local_11_in = OrderSend(para_0_st,para_1_in,local_14_do,local_4_do,global_15_in,0.0,0.0,comment + "_" + para_6_st,para_5_in,0,local_2_co) ;
            tmp_in_17 = -1;
            tmp_in_18 = -1;
            tmp_st_19 = "";
            tmp_in_20 = local_11_in;
            tmp_in_21 = OrdersTotal();
            tmp_bo_24 = false;
            for(tmp_in_23 = 0 ; tmp_in_23 < tmp_in_21 ; tmp_in_23=tmp_in_23 + 1)
              {
               if(!(OrderSelect(tmp_in_23,0,0)))
                  continue;

               if((OrderSymbol() != tmp_st_19 && tmp_st_19 != ""))
                  continue;

               if((tmp_in_18 >= 0 && OrderType() != tmp_in_18))
                  continue;

               if((tmp_in_17 >= 0 && OrderMagicNumber() != tmp_in_17) || OrderTicket() != tmp_in_20)
                  continue;
               tmp_bo_24 = true;
               break;
              }
            if(tmp_bo_24)
              {
               fun_14(-1.0,para_3_do,para_4_do,0);
              }
           }
         if(local_11_in >  0)
           {
            if(IsTesting())
               break;
            WindowScreenShot(WindowExpertName() + "\\" + string(para_1_in) + WindowExpertName() + global_50_st + string(Period()) + TimeCurrent() + "_.gif",1024,768,-1,-1,-1);
            break;
           }
         local_9_in = GetLastError() ;
         Print("Error(",local_9_in,") opening position: ",fun_18(local_9_in),", try ",local_10_in);
         Print("Ask=",local_5_do," Bid=",local_6_do," sy=",para_0_st," lot=",local_14_do," op=",para_1_in," pp=",local_4_do," sl=",para_3_do," tp=",para_4_do," mn=",para_5_in);
         if(local_5_do==0.0 && local_6_do==0.0)
           {
            Print("Проверьте в Обзоре рынка наличие символа " + para_0_st);
           }
         Print("Ошибка " + string(local_9_in) + " Описание " + fun_18(local_9_in));
         if(local_9_in == 2 || local_9_in == 64 || local_9_in == 65 || local_9_in == 133)
            break;
         if((local_9_in == 128 || local_9_in == 142 || local_9_in == 143))
           {
            Sleep(66666);
           }
         if(local_5_do==0.0 && local_6_do==0.0)
           {
            Alert("Проверьте в Обзоре рынка наличие символа " + para_0_st);
           }
         if(local_9_in == 2 || local_9_in == 64 || local_9_in == 65 || local_9_in == 133)
            break;
         if((local_9_in == 4 || local_9_in == 131 || local_9_in == 132))
           {
            Sleep(30000);
            break;
           }
         if(local_9_in == 140 || local_9_in == 148 || local_9_in == 4110 || local_9_in == 4111)
            break;
         if(local_9_in == 141)
           {
            Sleep(100000);
           }
         if(local_9_in == 145)
           {
            Sleep(17000);
           }
         if(local_9_in == 146 && IsTradeContextBusy())
           {
            do
              {
               Sleep(500);
              }
            while(IsTradeContextBusy());
           }
         if(local_9_in == 135)
            continue;
         Sleep(7700);

        }
      local_15_do = local_15_do + local_14_do ;
      if(!(global_39_bo))
         break;

     }
   return(local_11_in);
  }

double fun_16(double para_0_do,bool para_2_bo)
  {
   double    local_1_do;
   string    local_2_st;
   string    local_3_st;
   double    local_4_do;
   double    local_5_do;
   double    local_6_do;
   double    local_7_do;
   int       local_8_in;
   int       local_9_in;
   int       local_10_in;

   bool       tmp_bo_1;
   double     tmp_do_2;
   int        tmp_in_3;
   int        tmp_in_4;
   double     tmp_do_5;
   double     tmp_do_6;

   local_2_st = " Автор функции: " ;
   local_4_do = 0.0 ;
   local_5_do = 0.0 ;
   local_6_do = 0.0 ;
   local_7_do = 0.0 ;
   local_8_in = 0 ;
   local_10_in = 0 ;
   local_9_in = 0 ;
   if(MarketInfo(global_50_st,24)==0.01)
     {
      local_8_in = 2 ;
     }
   else
     {
      local_8_in = 1 ;
     }
   local_5_do = MarketInfo(global_50_st,23) ;
   if(Lots<local_5_do)
     {
      Lots = local_5_do ;
     }
   local_6_do = global_37_do ;
   if(global_34_do!=0.0)
     {
      if(fix_balance>0.0)
        {
         local_7_do = fix_balance ;
        }
      else
        {
         if(BaseForLotCalc == 0)
           {
            tmp_bo_1 = AccountEquity();
           }
         else
           {
            tmp_bo_1 = AccountBalance();
           }
         local_7_do = tmp_bo_1 ;
        }
      local_7_do = local_7_do + virtBalance ;
      tmp_do_2 = local_7_do;
      tmp_in_3 = global_34_do;
      tmp_in_4 = MarketInfo(global_50_st,16);
      tmp_do_5 = 0.0;
      if(MarketInfo(global_50_st,11)!=0.0)
        {
         tmp_do_5 = MarketInfo(global_50_st,9) / MarketInfo(global_50_st,11);
        }
      if(tmp_do_5 * tmp_in_4==0.0)
        {
         PrintFormat(global_50_st + " bidcorr*ValuePerPip==0");
         tmp_do_6 = 0.0;
        }
      else
        {
         tmp_do_6 = tmp_in_3 * tmp_do_2 / (tmp_do_5 * tmp_in_4);
        }
      local_4_do = tmp_do_6 * global_36_do ;
     }
   else
     {
      if(FirstNumberp >  0 && LotsMartinp>0.0)
        {
         local_4_do = Lots / MathPow(LotsMartinp,FirstNumberp) ;
        }
      else
        {
         local_4_do = Lots ;
        }
     }
   if(para_2_bo)
     {
      local_4_do = NormalizeDouble(local_4_do,local_8_in) ;
     }
   return(local_4_do);
  }

void fun_17(string para_0_st,int para_1_in,int para_2_in)
  {
   int       local_1_in = 0;
   int       local_2_in;
   string    local_3_st;

   int        tmp_in_1;
   double     tmp_do_2;
   double     tmp_do_3;
   double     tmp_do_4;
   int        tmp_in_5;
   string     tmp_st_6;

   local_2_in = OrdersTotal() ;
   local_3_st = " Автор функции:" ;
   if(para_0_st == "0")
     {
      para_0_st = global_50_st ;
     }
   for(local_1_in=local_2_in - 1 ; local_1_in >= 0 ; local_1_in --)
     {
      if(!(OrderSelect(local_1_in,0,0)))
         continue;

      if((OrderSymbol() != para_0_st && para_0_st != ""))
         continue;

      if((para_1_in >= 0 && OrderType() != para_1_in))
         continue;

      if((OrderType() != 0 && OrderType() != 1))
         continue;

      if((para_2_in >= 0 && OrderMagicNumber() != para_2_in))
         continue;
      tmp_in_1 = 0;
      tmp_do_2 = 0.0;
      tmp_do_3 = 0.0;
      tmp_do_4 = 0.0;
      tmp_in_5 = 0;
      if((OrderType() != 0 && OrderType() != 1))
         continue;
      for(tmp_in_5 = 1 ; tmp_in_5 <= 20 ; tmp_in_5=tmp_in_5 + 1)
        {
         RefreshRates();
         tmp_do_2 = MarketInfo(OrderSymbol(),10);
         tmp_do_3 = MarketInfo(OrderSymbol(),9);
         if(OrderType() == 0)
           {
            tmp_do_4 = tmp_do_3;
           }
         else
           {
            tmp_do_4 = tmp_do_2;
           }
         if(OrderClose(OrderTicket(),OrderLots(),tmp_do_4,1,tmp_in_1))
            break;
         Print("Error(",GetLastError(),") opening position: ",fun_18(GetLastError()),", try ",tmp_in_5);
         do
           {
            if((GetLastError() != 146 || !(IsTradeContextBusy())))
               continue;
            Sleep(500);
           }
         while(IsTradeContextBusy());
        }
     }
  }

string fun_18(int para_0_in)
  {
   string    local_1_st;

   switch(para_0_in)
     {
      case 0 :
      case 1 :
         local_1_st = "no error" ;
         break;
      case 2 :
         local_1_st = "common error" ;
         break;
      case 3 :
         local_1_st = "invalid trade parameters" ;
         break;
      case 4 :
         local_1_st = "trade server is busy" ;
         break;
      case 5 :
         local_1_st = "old version of the client terminal" ;
         break;
      case 6 :
         local_1_st = "no connection with trade server" ;
         break;
      case 7 :
         local_1_st = "not enough rights" ;
         break;
      case 8 :
         local_1_st = "too frequent requests" ;
         break;
      case 9 :
         local_1_st = "malfunctional trade operation (never returned error)" ;
         break;
      case 64 :
         local_1_st = "account disabled" ;
         break;
      case 65 :
         local_1_st = "invalid account" ;
         break;
      case 128 :
         local_1_st = "trade timeout" ;
         break;
      case 129 :
         local_1_st = "invalid price" ;
         break;
      case 130 :
         local_1_st = "invalid stops" ;
         break;
      case 131 :
         local_1_st = "invalid trade volume" ;
         break;
      case 132 :
         local_1_st = "market is closed" ;
         break;
      case 133 :
         local_1_st = "trade is disabled" ;
         break;
      case 134 :
         local_1_st = "not enough money" ;
         break;
      case 135 :
         local_1_st = "price changed" ;
         break;
      case 136 :
         local_1_st = "off quotes" ;
         break;
      case 137 :
         local_1_st = "broker is busy (never returned error)" ;
         break;
      case 138 :
         local_1_st = "requote" ;
         break;
      case 139 :
         local_1_st = "order is locked" ;
         break;
      case 140 :
         local_1_st = "long positions only allowed" ;
         break;
      case 141 :
         local_1_st = "too many requests" ;
         break;
      case 145 :
         local_1_st = "modification denied because order too close to market" ;
         break;
      case 146 :
         local_1_st = "trade context is busy" ;
         break;
      case 147 :
         local_1_st = "expirations are denied by broker" ;
         break;
      case 148 :
         local_1_st = "amount of open and pending orders has reached the limit" ;
         break;
      case 149 :
         local_1_st = "hedging is prohibited" ;
         break;
      case 150 :
         local_1_st = "prohibited by FIFO rules" ;
         break;
      case 4000 :
         local_1_st = "no error (never generated code)" ;
         break;
      case 4001 :
         local_1_st = "wrong function pointer" ;
         break;
      case 4002 :
         local_1_st = "array index is out of range" ;
         break;
      case 4003 :
         local_1_st = "no memory for function call stack" ;
         break;
      case 4004 :
         local_1_st = "recursive stack overflow" ;
         break;
      case 4005 :
         local_1_st = "not enough stack for parameter" ;
         break;
      case 4006 :
         local_1_st = "no memory for parameter string" ;
         break;
      case 4007 :
         local_1_st = "no memory for temp string" ;
         break;
      case 4008 :
         local_1_st = "not initialized string" ;
         break;
      case 4009 :
         local_1_st = "not initialized string in array" ;
         break;
      case 4010 :
         local_1_st = "no memory for array\' string" ;
         break;
      case 4011 :
         local_1_st = "too long string" ;
         break;
      case 4012 :
         local_1_st = "remainder from zero divide" ;
         break;
      case 4013 :
         local_1_st = "zero divide" ;
         break;
      case 4014 :
         local_1_st = "unknown command" ;
         break;
      case 4015 :
         local_1_st = "wrong jump (never generated error)" ;
         break;
      case 4016 :
         local_1_st = "not initialized array" ;
         break;
      case 4017 :
         local_1_st = "dll calls are not allowed" ;
         break;
      case 4018 :
         local_1_st = "cannot load library" ;
         break;
      case 4019 :
         local_1_st = "cannot call function" ;
         break;
      case 4020 :
         local_1_st = "expert function calls are not allowed" ;
         break;
      case 4021 :
         local_1_st = "not enough memory for temp string returned from function" ;
         break;
      case 4022 :
         local_1_st = "system is busy (never generated error)" ;
         break;
      case 4050 :
         local_1_st = "invalid function parameters count" ;
         break;
      case 4051 :
         local_1_st = "invalid function parameter value" ;
         break;
      case 4052 :
         local_1_st = "string function internal error" ;
         break;
      case 4053 :
         local_1_st = "some array error" ;
         break;
      case 4054 :
         local_1_st = "incorrect series array using" ;
         break;
      case 4055 :
         local_1_st = "custom indicator error" ;
         break;
      case 4056 :
         local_1_st = "arrays are incompatible" ;
         break;
      case 4057 :
         local_1_st = "global variables processing error" ;
         break;
      case 4058 :
         local_1_st = "global variable not found" ;
         break;
      case 4059 :
         local_1_st = "function is not allowed in testing mode" ;
         break;
      case 4060 :
         local_1_st = "function is not confirmed" ;
         break;
      case 4061 :
         local_1_st = "send mail error" ;
         break;
      case 4062 :
         local_1_st = "string parameter expected" ;
         break;
      case 4063 :
         local_1_st = "integer parameter expected" ;
         break;
      case 4064 :
         local_1_st = "double parameter expected" ;
         break;
      case 4065 :
         local_1_st = "array as parameter expected" ;
         break;
      case 4066 :
         local_1_st = "requested history data in update state" ;
         break;
      case 4099 :
         local_1_st = "end of file" ;
         break;
      case 4100 :
         local_1_st = "some file error" ;
         break;
      case 4101 :
         local_1_st = "wrong file name" ;
         break;
      case 4102 :
         local_1_st = "too many opened files" ;
         break;
      case 4103 :
         local_1_st = "cannot open file" ;
         break;
      case 4104 :
         local_1_st = "incompatible access to a file" ;
         break;
      case 4105 :
         local_1_st = "no order selected" ;
         break;
      case 4106 :
         local_1_st = "unknown symbol" ;
         break;
      case 4107 :
         local_1_st = "invalid price parameter for trade function" ;
         break;
      case 4108 :
         local_1_st = "invalid ticket" ;
         break;
      case 4109 :
         local_1_st = "trade is not allowed in the expert properties" ;
         break;
      case 4110 :
         local_1_st = "longs are not allowed in the expert properties" ;
         break;
      case 4111 :
         local_1_st = "shorts are not allowed in the expert properties" ;
         break;
      case 4200 :
         local_1_st = "object is already exist" ;
         break;
      case 4201 :
         local_1_st = "unknown object property" ;
         break;
      case 4202 :
         local_1_st = "object is not exist" ;
         break;
      case 4203 :
         local_1_st = "unknown object type" ;
         break;
      case 4204 :
         local_1_st = "no object name" ;
         break;
      case 4205 :
         local_1_st = "object coordinates error" ;
         break;
      case 4206 :
         local_1_st = "no specified subwindow" ;
         break;
      default :
         local_1_st = "unknown error" ;
     }
   return(local_1_st);
  }

int fun_19()
  {
   int       local_1_in;
   double    local_2_do;
   bool      local_3_bo;
   int       local_4_in;
   int       local_5_in;
   int       local_6_in;

   if(!(funs2(global_50_st,-1,global_25_in,0,"")))
     {
      if(!(funs10()))
        {
         global_14_in = 0 ;
         GlobalVariableSet(string(IsTesting()) + "NUMBER" + global_50_st + string(global_26_in),0.0);
         GlobalVariableSet(string(IsTesting()) + global_50_st + string(global_26_in) + "peak",0.0);
         ObjectDelete(0,global_25_in);
        }
     }
   if(!(funs2(global_50_st,-1,global_25_in,0,"")))
     {
      if(funs10())
        {
         if((funs5() != "" || FirstPositionp == 4))
           {
            GlobalVariableSet(string(IsTesting()) + global_50_st + "0" + string(global_26_in),0.0);
            GlobalVariableSet(string(IsTesting()) + global_50_st + "1" + string(global_26_in),0.0);
            global_14_in = 0 ;
            GlobalVariableSet(string(IsTesting()) + "NUMBER" + global_50_st + string(global_26_in),0.0);
            GlobalVariableSet(string(IsTesting()) + global_50_st + string(global_26_in) + "peak",0.0);
            ObjectDelete(0,global_25_in);
           }
        }
     }
   if(global_69_do==0.0)
     {
      if(funs2(global_50_st,0,global_25_in,0,""))
        {
         global_70_in = (global_55_do - global_56_do) / global_128_do ;
         global_69_do = (global_129_do - global_70_in) * global_128_do + MathMin(iClose(global_50_st,0,1),global_127_do) ;
         GlobalVariableSet(string(IsTesting()) + "Distance_Price" + global_50_st + string(global_26_in),global_69_do);
         funs7();
        }
      if(funs2(global_50_st,1,global_25_in,0,""))
        {
         global_70_in = (global_55_do - global_56_do) / global_128_do ;
         global_69_do = global_70_in * global_128_do + MathMax(iClose(global_50_st,0,1),global_127_do) ;
         GlobalVariableSet(string(IsTesting()) + "Distance_Price" + global_50_st + string(global_26_in),global_69_do);
         funs7();
        }
     }
   if(!(GlobalVariableCheck(string(IsTesting()) + "NUMBER" + global_50_st + string(global_26_in))))
     {
      SetNUMBER(global_50_st,-1, global_25_in);
     }
   local_2_do = 0.0 ;
   local_3_bo = false ;
   local_5_in = 0 ;
   local_4_in = 0 ;
   global_129_do = MarketInfo(global_50_st,13) ;
   global_125_do = MarketInfo(global_50_st,13) * MarketInfo(global_50_st,11) ;
   global_126_do = MarketInfo(global_50_st,10) ;
   global_127_do = MarketInfo(global_50_st,9) ;
   global_128_do = MarketInfo(global_50_st,11) ;
   global_130_do = 0.0 ;
   if(iClose(global_50_st,0,1)>0.0)
     {
      global_130_do = (MathAbs(global_127_do / iClose(global_50_st,0,1) - 1.0)) * 10000.0 ;
     }
   local_6_in = 0 ;
   if(global_69_do!=0.0)
     {
      if(DELAYtime(global_50_st,-1,global_25_in,"HS",iTime(global_50_st,0,0))>global_18_in * global_33_do * PeriodSeconds(0) && global_130_do<20.0)
        {
         if((funs2(global_50_st,0,global_25_in,0,"") || funs9(0)))
           {
            if(global_126_do<=global_69_do)
              {
               local_3_bo = false ;
               local_2_do = NormalizeDouble(fun_16(1.0,false) * MathPow(global_42_do,MathMin(global_44_in,global_14_in + 1)),2) ;
               if((FirstNumberp > global_14_in + 1 || (global_43_in <  global_14_in + 1 && global_43_in >  0)))
                 {
                  local_3_bo = true ;
                  local_6_in = -1 ;
                  Print(global_50_st + " " + string(global_25_in) + " The opened grid level is less than the minimum level. The deal is virtualized");
                 }
               else
                 {
                  if(local_2_do<0.01)
                    {
                     local_3_bo = true ;
                     local_6_in = -1 ;
                     Print(global_50_st + " " + string(global_25_in) + " Current lot <0.01. The average deal is virtualized");
                    }
                  else
                    {
                     if(!(funs2(global_50_st,0,global_25_in,0,"")) && MaxOtherMagics >  0)
                       {
                        if(funs6int(global_25_in,"") >= MaxOtherMagics)
                          {
                           local_3_bo = true ;
                           local_6_in = -1 ;
                           Print(global_50_st + " " + string(global_25_in) + " GetOtherMagicsCount >= MaxOtherMagics. The deal is virtualized");
                           if(FirstNumberp <= global_14_in + 1)
                             {
                              global_14_in --;
                             }
                          }
                       }
                     else
                       {
                        if(!(funs2(global_50_st,0,global_25_in,0,"")) && MaxOtherSymbols >  0)
                          {
                           if(funs6str(global_50_st) >= MaxOtherSymbols)
                             {
                              local_3_bo = true ;
                              local_6_in = -1 ;
                              Print(global_50_st + " " + string(global_25_in) + " GetOtherSymbolsCount >= MaxOtherSymbols. The deal is virtualized");
                              if(FirstNumberp <= global_14_in + 1)
                                {
                                 global_14_in --;
                                }
                             }
                          }
                        else
                          {
                           local_6_in = fun_15(global_50_st,0,local_2_do,0.0,0.0,global_25_in,"C" + IntegerToString(global_14_in + 1,0,32),global_69_do) ;
                           if(local_6_in >  0)
                             {
                              GlobalVariableSet(string(IsTesting()) + global_50_st + "0" + string(global_26_in),0.0);
                              local_3_bo = true ;
                             }
                          }
                       }
                    }
                 }
               if(local_3_bo)
                 {
                  global_14_in ++;
                  fun80(local_6_in);
                  GlobalVariableSet(string(IsTesting()) + "NUMBER" + global_50_st + string(global_26_in),global_14_in);
                  global_70_in = (global_55_do - global_56_do) / global_128_do ;
                  global_69_do =  MathMin(iClose(global_50_st,0,1),global_127_do)+(global_129_do - global_70_in) * global_128_do  ;
                  GlobalVariableSet(string(IsTesting()) + "Distance_Price" + global_50_st + string(global_26_in),global_69_do);
                  funs7();
                 }
              }
           }
         else
           {
            if((funs2(global_50_st,1,global_25_in,0,"") || funs9(1)) && global_127_do>=global_69_do)
              {
               local_3_bo = false ;
               local_2_do = NormalizeDouble(fun_16(1.0,false) * MathPow(global_42_do,MathMin(global_44_in,global_14_in + 1)),2) ;
               if((FirstNumberp > global_14_in + 1 || (global_43_in <  global_14_in + 1 && global_43_in >  0)))
                 {
                  local_3_bo = true ;
                  local_6_in = -1 ;
                  Print(global_50_st + " " + string(global_25_in) + " The opened grid level is less than the minimum level. The deal is virtualized");
                 }
               else
                 {
                  if(local_2_do<0.01)
                    {
                     local_3_bo = true ;
                     local_6_in = -1 ;
                     Print(global_50_st + " " + string(global_25_in) + " Current lot <0.01. The average deal is virtualized");
                    }
                  else
                    {
                     if(!(funs2(global_50_st,1,global_25_in,0,"")) && MaxOtherMagics >  0)
                       {
                        if(funs6int(global_25_in,"") >= MaxOtherMagics)
                          {
                           local_3_bo = true ;
                           local_6_in = -1 ;
                           Print(global_50_st + " " + string(global_25_in) + " GetOtherMagicsCount >= MaxOtherMagics. The deal is virtualized");
                           if(FirstNumberp <= global_14_in + 1)
                             {
                              global_14_in --;
                             }
                          }
                       }
                     else
                       {
                        if(!(funs2(global_50_st,1,global_25_in,0,"")) && MaxOtherSymbols >  0)
                          {
                           if(funs6str(global_50_st) >= MaxOtherSymbols)
                             {
                              local_3_bo = true ;
                              local_6_in = -1 ;
                              Print(global_50_st + " " + string(global_25_in) + " GetOtherSymbolsCount >= MaxOtherSymbols. The deal is virtualized");
                              if(FirstNumberp <= global_14_in + 1)
                                {
                                 global_14_in --;
                                }
                             }
                          }
                        else
                          {
                           local_6_in = fun_15(global_50_st,1,local_2_do,0.0,0.0,global_25_in,"C" + IntegerToString(global_14_in + 1,0,32),global_69_do) ;
                           if(local_6_in >  0)
                             {
                              GlobalVariableSet(string(IsTesting()) + global_50_st + "1" + string(global_26_in),0.0);
                              local_3_bo = true ;
                             }
                          }
                       }
                    }
                 }
               if(local_3_bo)
                 {
                  global_14_in ++;
                  fun80(local_6_in);
                  GlobalVariableSet(string(IsTesting()) + "NUMBER" + global_50_st + string(global_26_in),global_14_in);
                  global_70_in = (global_55_do - global_56_do) / global_128_do ;
                  global_69_do = global_70_in * global_128_do + MathMax(iClose(global_50_st,0,1),global_127_do) ;
                  GlobalVariableSet(string(IsTesting()) + "Distance_Price" + global_50_st + string(global_26_in),global_69_do);
                  funs7();
                 }
              }
           }
        }
     }
   return(0);
  }

string fun_20(string para_0_st)
  {
   string     tmp_st_1;

   if(StringLen(para_0_st)  != 3)
     {
      tmp_st_1 = "9";
      return(tmp_st_1);
     }
   if(para_0_st == "AUD")
     {
      tmp_st_1 = "1";
      return(tmp_st_1);
     }
   if(para_0_st == "CAD")
     {
      tmp_st_1 = "2";
      return(tmp_st_1);
     }
   if(para_0_st == "EUR")
     {
      tmp_st_1 = "3";
      return(tmp_st_1);
     }
   if(para_0_st == "GBP")
     {
      tmp_st_1 = "4";
      return(tmp_st_1);
     }
   if(para_0_st == "JPY")
     {
      tmp_st_1 = "5";
      return(tmp_st_1);
     }
   if(para_0_st == "NZD")
     {
      tmp_st_1 = "6";
      return(tmp_st_1);
     }
   if(para_0_st == "USD")
     {
      tmp_st_1 = "7";
      return(tmp_st_1);
     }
   tmp_st_1 = "9";
   return(tmp_st_1);
  }

int fun_21()
  {
   int       local_1_in;
   string    local_2_st;
   string    local_3_st;
   string    local_4_st;
   string    local_5_st;
   string    local_6_st;
   string    local_7_st;
   string    local_8_st;
   string    local_9_st;
   int       local_10_in;
   string    local_11_st;
   int       local_12_in;
   int       local_13_in;
   int       local_14_in;

   int        tmp_in_1;
   int        tmp_in_2;
   string     tmp_st_3;
   string     tmp_st_4;
   int        tmp_in_5;
   string     tmp_st_6;
   string     tmp_st_7;
   string     tmp_st_8;
   string     tmp_st_9;

   local_2_st = "" ;
   local_3_st = "" ;
   local_4_st = "" ;
   local_5_st = "" ;
   local_6_st = "" ;
   local_7_st = "" ;
   local_8_st = "" ;
   local_9_st = "" ;
   local_10_in = 0 ;
   local_11_st = MQLInfoString(MQL_PROGRAM_NAME) + " orders " + global_50_st + " " + string(global_8_in) + "-" + string(global_33_do) + "-" + string(global_19_in) + "-" + string(global_20_in) + "-" + string(global_28_do) + "-" + string(global_29_do) + "-" + string(global_30_in) + "-" + string(global_31_do) + ".csv" ;
   FileDelete(StringConcatenate("Report ",AccountNumber()) + "//" + local_11_st,0);
   local_12_in = FileOpen(StringConcatenate("Report ",AccountNumber()) + "//" + local_11_st,11) ;
   if(local_12_in == -1)
     {
      PrintFormat("ошибка открытия файла");
     }
   if(local_12_in != -1)
     {
      FileWrite(local_12_in,"Прогон","Ордер Тиккет","Тип ордера","Лоты","Пара","Цена открытия","Цена закрытия","Stop loss","Take profot","Время открытия","Время закрытия","Меджик номер","Профит","Своп","Комиссии","Коммент","Аналитика");
      FileSeek(local_12_in,0,2);
      local_13_in = 0 ;
      for(local_14_in = 0 ; local_14_in < HistoryTotal() ; local_14_in ++)
        {
         if(OrderSelect(local_14_in,0,1))
           {
            local_10_in = MarketInfo(OrderSymbol(),12) ;
            local_2_st = DoubleToString(OrderProfit(),2) ;
            local_3_st = DoubleToString(OrderSwap(),2) ;
            local_4_st = DoubleToString(OrderCommission(),2) ;
            local_5_st = DoubleToString(OrderLots(),2) ;
            local_6_st = DoubleToString(OrderOpenPrice(),local_10_in) ;
            local_7_st = DoubleToString(OrderClosePrice(),local_10_in) ;
            local_8_st = DoubleToString(OrderStopLoss(),local_10_in) ;
            local_9_st = DoubleToString(OrderTakeProfit(),local_10_in) ;
            tmp_in_1 = OrderTicket();
            for(tmp_in_2 = 0 ; tmp_in_2 < 40000 ; tmp_in_2=tmp_in_2 + 1)
              {
               if(global_87_in_si40000[tmp_in_2] != tmp_in_1)
                  continue;
               tmp_st_3 = global_86_st_si40000[tmp_in_2];
               break;

              }
            tmp_st_3 = "0";
            tmp_st_4 = OrderComment();
            tmp_in_5 = OrderMagicNumber();
            tmp_st_6 = TimeToString(OrderCloseTime(),3);
            tmp_st_7 = TimeToString(OrderOpenTime(),3);
            tmp_st_8 = OrderSymbol();
            tmp_st_9 = "";
            switch(OrderType())
              {
               case 0 :
                  tmp_st_9 = "BUY";
                  break;
               case 1 :
                  tmp_st_9 = "SELL";
                  break;
               case 2 :
                  tmp_st_9 = "BUY LIMIT";
                  break;
               case 3 :
                  tmp_st_9 = "SELL LIMIT";
                  break;
               case 4 :
                  tmp_st_9 = "BUY STOP";
                  break;
               case 5 :
                  tmp_st_9 = "SELL STOP";
                  break;
               case 6 :
                  tmp_st_9 = "DEPOSIT";
              }
            FileWrite(local_12_in,MQLInfoString(MQL_PROGRAM_NAME) + " orders " + string(global_8_in) + "-" + string(global_33_do) + "-" + string(global_19_in) + "-" + string(global_20_in) + "-" + string(global_28_do) + "-" + string(global_29_do) + "-" + string(global_30_in) + "-" + string(global_31_do) + ".csv",DoubleToString(OrderTicket(),0),tmp_st_9,local_5_st,tmp_st_8,local_6_st,local_7_st,local_8_st,local_9_st,tmp_st_7,tmp_st_6,tmp_in_5,local_2_st,local_3_st,local_4_st,tmp_st_4,tmp_st_3);
           }
        }
      FileClose(local_12_in);
     }
   return(0);
  }

int fun_22()
  {
   int       local_1_in;
   int       local_2_in;
   int       local_3_in;
   string    local_4_st;
   string    local_5_st;
   string    local_6_st;
   string    local_7_st;
   int       local_8_in;
   string    local_9_st;
   int       local_10_in;
   int       local_11_in;

   local_2_in = -1 ;
   local_3_in = -1 ;
   local_4_st = "" ;
   local_5_st = "" ;
   local_6_st = "" ;
   local_7_st = "" ;
   local_8_in = 0 ;
   local_9_st = MQLInfoString(MQL_PROGRAM_NAME) + " equity " + global_50_st + " " + string(global_8_in) + "-" + string(global_33_do) + "-" + string(global_19_in) + "-" + string(global_20_in) + "-" + string(global_28_do) + "-" + string(global_29_do) + "-" + string(global_30_in) + "-" + string(global_31_do) + ".csv" ;
   FileDelete(StringConcatenate("Report ",AccountNumber()) + "//" + local_9_st,0);
   local_10_in = FileOpen(StringConcatenate("Report ",AccountNumber()) + "//" + local_9_st,11) ;
   if(local_10_in == -1)
     {
      PrintFormat("ошибка открытия файла");
     }
   if(local_10_in != -1)
     {
      FileWrite(local_10_in,"прогон","пара","дата","balance","equity","min_equity","symbol_koef","margin","max_margin");
      FileSeek(local_10_in,0,2);
      for(local_11_in = 0 ; local_11_in < global_89_in ; local_11_in ++)
        {
         FileWrite(local_10_in,MQLInfoString(MQL_PROGRAM_NAME) + " equity " + string(global_8_in) + "-" + string(global_33_do) + "-" + string(global_19_in) + "-" + string(global_20_in) + "-" + string(global_28_do) + "-" + string(global_29_do) + "-" + string(global_30_in) + "-" + string(global_31_do) + ".csv",global_50_st,TimeToString(int(global_85_do_si7si10000[0][local_11_in]),3),int(global_85_do_si7si10000[1][local_11_in]),int(global_85_do_si7si10000[2][local_11_in]),int(global_85_do_si7si10000[3][local_11_in]),int(global_85_do_si7si10000[5][local_11_in]),int(global_85_do_si7si10000[6][local_11_in]));
        }
      FileClose(local_10_in);
     }
   return(0);
  }

void fun_23(string para_0_st,_sets & para_1_a_160__sets_ko[])
  {
   string    local_1_st_ko[];
   string    local_2_st_ko[];
   string    local_3_st_ko[];
   double    local_4_do;
   double    local_5_do;
   double    local_6_do;
   double    local_7_do;
   double    local_8_do;
   double    local_9_do;
   int       local_10_in;
   string    local_11_st;

   int        tmp_in_1;
   int        tmp_in_2;
   int        tmp_in_3;
   int        tmp_in_4;
   int        tmp_in_5;
   int        tmp_in_6;
   int        tmp_in_7;
   int        tmp_in_8;
   int        tmp_in_9;
   int        tmp_in_10=7318875;

   local_11_st = "base" ;
   local_10_in = global_19_in ;
   local_9_do = global_21_do ;
   local_8_do = global_28_do ;
   local_7_do = global_29_do ;
   local_6_do = global_30_in ;
   local_5_do = global_31_do ;
   local_4_do = global_33_do ;
   StringSplit(para_0_st,StringGetCharacter(";",0),local_1_st_ko);
   tmp_in_1 = ArraySize(local_1_st_ko);
   for(tmp_in_2 = 0 ; tmp_in_2 < tmp_in_1 ; tmp_in_2=tmp_in_2 + 1)
     {
      local_1_st_ko[tmp_in_2] = StringTrimLeft(StringTrimRight(local_1_st_ko[tmp_in_2]));
     }
   tmp_in_3 = 0;
   tmp_in_4 = ArrayRange(local_1_st_ko,0);
   while(tmp_in_3 < MathMin(tmp_in_10,9))
     {
      if(StringTrimLeft(StringTrimRight(local_1_st_ko[tmp_in_3])) != "")
        {
         ArrayResize(para_1_a_160__sets_ko,tmp_in_3 + 1,0);
         para_1_a_160__sets_ko[tmp_in_3].st_1 = local_11_st;
         para_1_a_160__sets_ko[tmp_in_3].in_2 = local_11_st;
         para_1_a_160__sets_ko[tmp_in_3].do_3 = local_11_st;
         para_1_a_160__sets_ko[tmp_in_3].do_4 = local_11_st;
         para_1_a_160__sets_ko[tmp_in_3].do_5 = local_11_st;
         para_1_a_160__sets_ko[tmp_in_3].do_6 = local_11_st;
         para_1_a_160__sets_ko[tmp_in_3].do_7 = local_11_st;
         para_1_a_160__sets_ko[tmp_in_3].do_8 = local_11_st;
         tmp_in_5 = tmp_in_3 + 1;
         PrintFormat("using set #" + IntegerToString(tmp_in_5,0,32) + ": " + local_1_st_ko[tmp_in_3]);
         StringSplit(local_1_st_ko[tmp_in_3],StringGetCharacter(",",0),local_2_st_ko);
         tmp_in_6 = ArraySize(local_2_st_ko);
         for(tmp_in_7 = 0 ; tmp_in_7 < tmp_in_6 ; tmp_in_7=tmp_in_7 + 1)
           {
            local_2_st_ko[tmp_in_7] = StringTrimLeft(StringTrimRight(local_2_st_ko[tmp_in_7]));
           }
         for(tmp_in_3 = 0 ; tmp_in_3 < ArrayRange(local_2_st_ko,0) ; tmp_in_3=tmp_in_3 + 1)
           {
            StringSplit(local_2_st_ko[tmp_in_3],StringGetCharacter("=",0),local_3_st_ko);
            tmp_in_8 = ArraySize(local_3_st_ko);
            for(tmp_in_9 = 0 ; tmp_in_9 < tmp_in_8 ; tmp_in_9=tmp_in_9 + 1)
              {
               local_3_st_ko[tmp_in_9] = StringTrimLeft(StringTrimRight(local_3_st_ko[tmp_in_9]));
              }
            if(local_3_st_ko[0] == "s1")
              {
               para_1_a_160__sets_ko[tmp_in_3].st_1 = local_3_st_ko[1];
              }
            else
              {
               if(local_3_st_ko[0] == "s2")
                 {
                  para_1_a_160__sets_ko[tmp_in_3].in_2 = StringToInteger(local_3_st_ko[1]);
                 }
               else
                 {
                  if(local_3_st_ko[0] == "s3")
                    {
                     para_1_a_160__sets_ko[tmp_in_3].do_3 = StringToDouble(local_3_st_ko[1]);
                    }
                  else
                    {
                     if(local_3_st_ko[0] == "s4")
                       {
                        para_1_a_160__sets_ko[tmp_in_3].do_4 = StringToDouble(local_3_st_ko[1]);
                       }
                     else
                       {
                        if(local_3_st_ko[0] == "s5")
                          {
                           para_1_a_160__sets_ko[tmp_in_3].do_5 = StringToDouble(local_3_st_ko[1]);
                          }
                        else
                          {
                           if(local_3_st_ko[0] == "s6")
                             {
                              para_1_a_160__sets_ko[tmp_in_3].do_6 = StringToDouble(local_3_st_ko[1]);
                             }
                           else
                             {
                              if(local_3_st_ko[0] == "s7")
                                {
                                 para_1_a_160__sets_ko[tmp_in_3].do_7 = StringToDouble(local_3_st_ko[1]);
                                }
                              else
                                {
                                 if(local_3_st_ko[0] == "s8")
                                   {
                                    para_1_a_160__sets_ko[tmp_in_3].do_8 = StringToDouble(local_3_st_ko[1]);
                                   }
                                }
                             }
                          }
                       }
                    }
                 }
              }
           }
        }
      tmp_in_3=tmp_in_3 + 1;
      tmp_in_10 = ArrayRange(local_1_st_ko,0);
     }
  }

void fun_24()
  {
   global_122_do_si6si5si2[0][0][0] = 0.0000897;
   global_122_do_si6si5si2[0][1][0] = 0.0001034;
   global_122_do_si6si5si2[0][2][0] = 0.0001795;
   global_122_do_si6si5si2[0][3][0] = 0.0002647;
   global_122_do_si6si5si2[0][4][0] = 0.0002584;
   global_122_do_si6si5si2[1][0][0] = 0.0000588;
   global_122_do_si6si5si2[1][1][0] = 0.0000813;
   global_122_do_si6si5si2[1][2][0] = 0.0001579;
   global_122_do_si6si5si2[1][3][0] = 0.0003007;
   global_122_do_si6si5si2[1][4][0] = 0.0004076;
   global_122_do_si6si5si2[2][0][0] = 0.0000738;
   global_122_do_si6si5si2[2][1][0] = 0.0000939;
   global_122_do_si6si5si2[2][2][0] = 0.0001887;
   global_122_do_si6si5si2[2][3][0] = 0.0003237;
   global_122_do_si6si5si2[2][4][0] = 0.0003535;
   global_122_do_si6si5si2[3][0][0] = 0.0000645;
   global_122_do_si6si5si2[3][1][0] = 0.0000914;
   global_122_do_si6si5si2[3][2][0] = 0.000148;
   global_122_do_si6si5si2[3][3][0] = 0.0002208;
   global_122_do_si6si5si2[3][4][0] = 0.00025;
   global_122_do_si6si5si2[4][0][0] = 0.000054;
   global_122_do_si6si5si2[4][1][0] = 0.0000639;
   global_122_do_si6si5si2[4][2][0] = 0.0000964;
   global_122_do_si6si5si2[4][3][0] = 0.0001486;
   global_122_do_si6si5si2[4][4][0] = 0.0001765;
   global_122_do_si6si5si2[5][0][0] = 0.000258;
   global_122_do_si6si5si2[5][1][0] = 0.000221;
   global_122_do_si6si5si2[5][2][0] = 0.000159;
   global_122_do_si6si5si2[5][3][0] = 0.000221;
   global_122_do_si6si5si2[5][4][0] = 0.000258;
   global_122_do_si6si5si2[0][0][1] = 0.5292458;
   global_122_do_si6si5si2[0][1][1] = 0.5154581;
   global_122_do_si6si5si2[0][2][1] = 0.4603964;
   global_122_do_si6si5si2[0][3][1] = 0.4371622;
   global_122_do_si6si5si2[0][4][1] = 0.4761835;
   global_122_do_si6si5si2[1][0][1] = 0

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

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

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

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

Стоимость полного кода
11 741₽