#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
extern double 初始下单量=0.1;
extern int 盈利加仓间隔点数=100;
extern double 盈利加仓下倍数=2;
extern int 盈利加仓次=5;
extern int 大周期均线=20;
extern int 小周期均线=10;
extern double 总获利大于几美金全部平仓=100;
extern int magic=1213;
datetime buytime=0;
datetime selltime=0;
int OnInit()
  {

   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
   
  }
void OnTick()
  {
     double da0=iMA(NULL,0,大周期均线,0,MODE_SMA,PRICE_CLOSE,0);
     double da1=iMA(NULL,0,大周期均线,0,MODE_SMA,PRICE_CLOSE,1);
     double da2=iMA(NULL,0,大周期均线,0,MODE_SMA,PRICE_CLOSE,2);
     double xiao0=iMA(NULL,0,小周期均线,0,MODE_SMA,PRICE_CLOSE,0);
     double xiao1=iMA(NULL,0,小周期均线,0,MODE_SMA,PRICE_CLOSE,1);
     double xiao2=iMA(NULL,0,小周期均线,0,MODE_SMA,PRICE_CLOSE,2);
     double buyop,buylots;
     int buydanshu=buydanshu(buyop,buylots);
     if(buydanshu==0)
      {
        if(xiao0>da0 && xiao1<da1)
          {
           if(buytime!=Time[0])
            {
              if(buy(初始下单量,0,0,Symbol()+"buy",magic)>0)
               {
                 buytime=Time[0];
               }
            }
          }
      }
     else
      {
        if(xiao0>da0 && buydanshu<盈利加仓次 && (Ask-buyop)>=盈利加仓间隔点数*Point)
         {
           buy(flots(buylots*盈利加仓下倍数),0,0,Symbol()+"buy"+buydanshu,magic);
         }
      }
     double sellop,selllots;
     int selldanshu=selldanshu(sellop,selllots);
     if(selldanshu==0)
      {
        if(xiao0<da0 && xiao1>da1)
          {
            if(selltime!=Time[0])
            {
              if(sell(初始下单量,0,0,Symbol()+"sell",magic)>0)
                {
                  selltime=Time[0];
                }
            }
          }
      }
     else
      {
        if(xiao0<da0 && selldanshu<盈利加仓次 && (sellop-Bid)>=盈利加仓间隔点数*Point)
         {
           
           sell(flots(selllots*盈利加仓下倍数),0,0,Symbol()+"sell"+selldanshu,magic);
         }
      }
     if(xiao0<da0 && xiao1>da1)//死叉，把多单全部平掉
      {
        closebuy();
      }
     if(xiao0>da0 && xiao1<da1)//金叉，把空单全部平掉
      {
        closesell();
      }
     if(buyprofit()>总获利大于几美金全部平仓)
      {
       closebuy();
      }
     if(sellprofit()>总获利大于几美金全部平仓)
      {
       closesell();
      }
  }
double buyprofit()
  {
     double a=0;
     int t=OrdersTotal();
     for(int i=t-1;i>=0;i--)
         {
           if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
             {
               if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==magic)
                 {
                   a=a+OrderProfit()+OrderCommission()+OrderSwap();
                 }
             }
         }  
    return(a);
  }
double sellprofit()
  {
     double a=0;
     int t=OrdersTotal();
     for(int i=t-1;i>=0;i--)
         {
           if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
             {
               if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==magic)
                 {
                   a=a+OrderProfit()+OrderCommission()+OrderSwap();
                 }
             }
         }  
    return(a);
  }
void closebuy()
  { 
    double buyop,buylots;
    while(buydanshu(buyop,buylots)>0)
     {
        int t=OrdersTotal();
        for(int i=t-1;i>=0;i--)
         {
           if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
             {
               if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==magic)
                 {
                   OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),300,Green);
                 }
             }
         }
        Sleep(800);
     }
  }
void closesell()
  {
    double sellop,selllots;
    while(selldanshu(sellop,selllots)>0)
     {
        int t=OrdersTotal();
        for(int i=t-1;i>=0;i--)
         {
           if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
             {
               if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==magic)
                 {
                   OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),300,Green);
                 }
             }
         }
        Sleep(800);
     }
  }
void buyxiugaitp(double tp)
  {
     for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==magic)
              {
                if(NormalizeDouble(OrderTakeProfit(),Digits)!=NormalizeDouble(tp,Digits))
                 {
                   OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tp,0,Green);
                 }
              }
          }
      }
  }
void sellxiugaitp(double tp)
  {
     for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==magic)
              {
                if(NormalizeDouble(OrderTakeProfit(),Digits)!=NormalizeDouble(tp,Digits))
                 {
                   OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tp,0,Green);
                 }
              }
          }
      }
  }
double avgbuyprice()
  {
    double a=0;
    int shuliang=0;
    double pricehe=0;
    for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==magic)
              {
               pricehe=pricehe+OrderOpenPrice();
               shuliang++;
              }
          }
      }
    if(shuliang>0)
     {
      a=pricehe/shuliang;
     }
    return(a);
  }
double avgsellprice()
  {
    double a=0;
    int shuliang=0;
    double pricehe=0;
    for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==magic)
              {
               pricehe=pricehe+OrderOpenPrice();
               shuliang++;
              }
          }
      }
    if(shuliang>0)
     {
      a=pricehe/shuliang;
     }
    return(a);
  }
double flots(double dlots)
  {
    double fb=NormalizeDouble(dlots/MarketInfo(Symbol(),MODE_MINLOT),0);
    return(MarketInfo(Symbol(),MODE_MINLOT)*fb);
  }
int buydanshu(double &op,double &lots)
  {
     int a=0;
     op=0;
     lots=0;
     for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==magic)
              {
                a++;
                op=OrderOpenPrice();
                lots=OrderLots();
              }
          }
      }
    return(a);
  }
 int selldanshu(double &op,double &lots)
  {
     int a=0;
     op=0;
     lots=0;
     for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==magic)
              {
                a++;
                op=OrderOpenPrice();
                lots=OrderLots();
              }
          }
      }
    return(a);
  }
int buy(double lots,double sl,double tp,string com,int buymagic)
  {
    int a=0;
    bool zhaodan=false;
     for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            string zhushi=OrderComment();
            int ma=OrderMagicNumber();
            if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && zhushi==com && ma==buymagic)
              {
                zhaodan=true;
                break;
              }
          }
      }
    if(zhaodan==false)
      {
        if(sl!=0 && tp==0)
         {
          a=OrderSend(Symbol(),OP_BUY,lots,Ask,50,Ask-sl*Point,0,com,buymagic,0,White);
         }
        if(sl==0 && tp!=0)
         {
          a=OrderSend(Symbol(),OP_BUY,lots,Ask,50,0,Ask+tp*Point,com,buymagic,0,White);
         }
        if(sl==0 && tp==0)
         {
          a=OrderSend(Symbol(),OP_BUY,lots,Ask,50,0,0,com,buymagic,0,White);
         }
        if(sl!=0 && tp!=0)
         {
          a=OrderSend(Symbol(),OP_BUY,lots,Ask,50,Ask-sl*Point,Ask+tp*Point,com,buymagic,0,White);
         } 
      }
    return(a);
  }
int sell(double lots,double sl,double tp,string com,int sellmagic)
  {
    int a=0;
    bool zhaodan=false;
     for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            string zhushi=OrderComment();
            int ma=OrderMagicNumber();
            if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && zhushi==com && ma==sellmagic)
              {
                zhaodan=true;
                break;
              }
          }
      }
    if(zhaodan==false)
      {
        if(sl==0 && tp!=0)
         {
           a=OrderSend(Symbol(),OP_SELL,lots,Bid,50,0,Bid-tp*Point,com,sellmagic,0,Red);
         }
        if(sl!=0 && tp==0)
         {
           a=OrderSend(Symbol(),OP_SELL,lots,Bid,50,Bid+sl*Point,0,com,sellmagic,0,Red);
         }
        if(sl==0 && tp==0)
         {
           a=OrderSend(Symbol(),OP_SELL,lots,Bid,50,0,0,com,sellmagic,0,Red);
         }
        if(sl!=0 && tp!=0)
         {
           a=OrderSend(Symbol(),OP_SELL,lots,Bid,50,Bid+sl*Point,Bid-tp*Point,com,sellmagic,0,Red);
         }
      }
    return(a);
  }
  //EA交易     =>  ...\MT4\MQL4\Experts

#property  copyright "作者：【炒金子】 QQ837708761, 2016-2018."
#property  link      "作者：【炒金子】 QQ837708761, 2016-2018."
#property description  "EA运行于磅澳5分钟周期。\n0.02手对应200美金500倍杠杆以上可24小时跑。\n建议按1000美金对应0.1手的比例跑,盈利/风险水平最佳。\n更多EA了解请加顺势投资讨论QQ群：492277208."


extern int   magic=837708761 ;   
extern bool 是否为以美元显示的美分账户=false ;   
extern double lots=0.5  ;   
extern int   maxtrades=5  ;   
extern double slippage=0.3  ;   
extern double maxspread=3  ;   

 string    z_st_1 = "【炒金子】超赢团队QQ";
 bool      z_bo_2 = false;
 bool      z_bo_3 = true;
 bool      z_bo_4 = false;
 bool      z_bo_5 = false;
 bool      z_bo_6 = false;
 bool      z_bo_7 = false;
 bool      z_bo_8 = false;
 bool      z_bo_9 = false;
 bool      z_bo_10 = false;
 bool      z_bo_11 = false;
 bool      z_bo_12 = false;
 bool      z_bo_13 = false;
 string    z_st_14 = "Money Management";
 bool      z_bo_15 = false;
 double    z_do_16 = 20.0;
 double    z_do_17 = 0.01;
 double    z_do_18 = 50.0;
 int       z_in_19 = 2;
 bool      z_bo_20 = false;
 double    z_do_21 = 2.0;
 bool      z_bo_22 = false;
 int       z_in_23 = 0;
 double    z_do_24 = 2.0;
 double    z_do_25 = 0.0;
 bool      z_bo_26 = false;
 int       z_in_27 = 0;
 bool      z_bo_28 = false;
 int       z_in_29 = 0;
 double    z_do_30 = 1.0;
 double    z_do_31 = 1.0;
 int       z_in_32 = 500;
 string    z_st_33 = "Profit Management";
 bool      z_bo_34 = false;
 double    z_do_35 = 0.1;
 double    z_do_36 = 100.0;
 bool      z_bo_37 = false;
 double    z_do_38 = 10.0;
 double    z_do_39 = 10000.0;
 bool      z_bo_40 = false;
 double    z_do_41 = 5.0;
 double    z_do_42 = 10000.0;
 bool      z_bo_43 = false;
 double    z_do_44 = 1.0;
 double    z_do_45 = 0.5;
 bool      z_bo_46 = false;
 double    z_do_47 = 75.0;
 double    z_do_48 = 20.0;
 bool      z_bo_49 = false;
 double    z_do_50 = 10.0;
 double    z_do_51 = 5.0;
 string    z_st_52 = "Order Management";
 bool      z_bo_53 = false;
 bool      z_bo_54 = true;
 bool      z_bo_55 = false;
 bool      z_bo_56 = false;
 bool      z_bo_57 = false;
 int       z_in_58 = 20;
 bool      z_bo_59 = false;
 bool      z_bo_60 = false;
 bool      z_bo_61 = false;
 bool      z_bo_62 = false;
 int       z_in_63 = 0;
 bool      z_bo_64 = false;
 int       z_in_65 = 1;
 bool      z_bo_66 = false;
 int       z_in_67 = 1;
 bool      z_bo_68 = false;
 bool      z_bo_69 = false;
 double    z_do_70 = 475.0;
 double    z_do_71 = 9.0;
 bool      z_bo_72 = false;
 bool      z_bo_73 = false;
 double    z_do_74 = 5.0;
 double    z_do_75 = 50.0;
 double    z_do_76 = 20.0;
 double    z_do_77 = 25.0;
 int       z_in_78 = 0;
 double    z_do_79 = 0.0;
 double    z_do_80 = 0.0;
 double    z_do_81 = 0.0;
 double    z_do_82 = 1.0;
 double    z_do_83 = 0.0;
 double    z_do_84 = 0.0;
 int       z_in_85 = 1440;
 string    z_st_86 = "Advanced Order Management";
 bool      z_bo_87 = false;
 int       z_in_88 = 1;
 bool      z_bo_89 = false;
 bool      z_bo_90 = false;
 bool      z_bo_91 = false;
 double    z_do_92 = 0.0;
 double    z_do_93 = 0.0;
 bool      z_bo_94 = false;
 bool      z_bo_95 = false;
 int       z_in_96 = 0;
 double    z_do_97 = 20.0;
 double    z_do_98 = 1.0;
 bool      z_bo_99 = false;
 bool      z_bo_100 = true;
 int       z_in_101 = 0;
 int       z_in_102 = 0;
 bool      z_bo_103 = false;
 int       z_in_104 = 4;
 int       z_in_105 = 60;
 bool      z_bo_106 = false;
 int       z_in_107 = 2;
 bool      z_bo_108 = false;
 int       z_in_109 = 0;
 int       z_in_110 = 10;
 bool      z_bo_111 = false;
 int       z_in_112 = 0;
 int       z_in_113 = 10;
 string    z_st_114 = "Entry Logics";
 int       z_in_115 = 32;
 int       z_in_116 = 21;
 int       z_in_117 = 0;
 string    z_st_118 = "0:NONE,1:M1,2:M5,3:M15,...,9:MN";
 int       z_in_119 = 6;
 int       z_in_120 = 8;
 int       z_in_121 = 19;
 bool      z_bo_122 = true;
 int       z_in_123 = 31;
 int       z_in_124 = 21;
 int       z_in_125 = 1;
 string    z_st_126 = "Time Filter";
 bool      z_bo_127 = false;
 int       z_in_128 = 0;
 int       z_in_129 = 0;
 bool      z_bo_130 = false;
 int       z_in_131 = 12;
 int       z_in_132 = 0;
 bool      z_bo_133 = false;
 int       z_in_134 = 7;
 int       z_in_135 = 0;
 int       z_in_136 = 21;
 int       z_in_137 = 0;
 bool      z_bo_138 = true;
 bool      z_bo_139 = false;
 int       z_in_140 = 12;
 int       z_in_141 = 0;
 int       z_in_142 = 24;
 bool      z_bo_143 = false;
 int       z_in_144 = 1;
 int       z_in_145 = 4;
 int       z_in_146 = 12;
 int       z_in_147 = 18;
 bool      z_bo_148 = false;
 int       z_in_149 = 3;
 int       z_in_150 = 10;
 bool      z_bo_151 = false;
 int       z_in_152 = 21;
 string    z_st_153 = "News Filter";
 bool      z_bo_154 = false;
 int       z_in_155 = 30;
 int       z_in_156 = 30;
 bool      z_bo_157 = false;
 bool      z_bo_158 = false;
 bool      z_bo_159 = false;
 string    z_st_160 = "Time Outs and Targets";
 bool      z_bo_161 = false;
 int       z_in_162 = 30;
 int       z_in_163 = 7;
 int       z_in_164 = 70;
 int       z_in_165 = 5;
 int       z_in_166 = 95;
 int       z_in_167 = 4;
 int       z_in_168 = 120;
 int       z_in_169 = 2;
 int       z_in_170 = 150;
 int       z_in_171 = -5;
 int       z_in_172 = 180;
 int       z_in_173 = -8;
 int       z_in_174 = 210;
 int       z_in_175 = -15;
 bool      z_bo_176 = false;
 bool      z_bo_177 = true;
 bool      z_bo_178 = true;
 bool      z_bo_179 = true;
 bool      z_bo_180 = false;
 bool      z_bo_181 = false;
 bool      z_bo_182 = true;
 bool      z_bo_183 = true;
 bool      z_bo_184 = true;
 bool      z_bo_185 = true;
 bool      z_bo_186 = true;
 bool      z_bo_187 = true;
 int       z_in_188 = 0;
 int       z_in_189 = 0;
 int       z_in_190 = 0;
 int       z_in_191 = 100;
 int       z_in_192 = 0;
 int       z_in_193 = 0;
 int       z_in_194 = 0;
 int       z_in_195 = 0;
 int       z_in_196 = 0;
 int       z_in_197 = 0;
 int       z_in_198 = 0;
 int       z_in_199 = 0;
 int       z_in_200 = 0;
 int       z_in_201 = 0;
 int       z_in_202 = 0;
 int       z_in_203 = 0;
 int       z_in_204 = 0;
 int       z_in_205 = 0;
 int       z_in_206 = 0;
 int       z_in_207 = 0;
 int       z_in_208 = 0;
 int       z_in_209 = 0;
 int       z_in_210 = 0;
 int       z_in_211 = 0;
 int       z_in_212 = 0;
 int       z_in_213 = 0;
 int       z_in_214 = 0;
 int       z_in_215 = 0;
 int       z_in_216 = 0;
 int       z_in_217 = 0;
 int       z_in_218 = 0;
 int       z_in_219 = 0;
 int       z_in_220 = 0;
 int       z_in_221 = 0;
 int       z_in_222 = 0;
 int       z_in_223 = 0;
 double    z_do_224 = 0.0;
 double    z_do_225 = 0.0;
 double    z_do_226 = 0.0;
 double    z_do_227 = 0.0;
 double    z_do_228 = 0.0;
 double    z_do_229 = 0.0;
 double    z_do_230 = 0.0;
 double    z_do_231 = 0.0;
 double    z_do_232 = 0.0;
 double    z_do_233 = 0.0;
 double    z_do_234[14];
 double    z_do_235[14];
 double    z_do_236 = 0.0;
 double    z_do_237 = 0.0;
 double    z_do_238 = 0.0;
 double    z_do_239 = 0.0;
 double    z_do_240[20];
 double    z_do_241 = 0.0;
 double    z_do_242 = 0.0;
 double    z_do_243 = 0.0;
 double    z_do_244 = 0.0;
 double    z_do_245 = 0.0;
 double    z_do_246 = 0.0;
 double    z_do_247 = 0.0;
 double    z_do_248 = 0.0;
 double    z_do_249 = 0.0;
 double    z_do_250 = 0.0;
 double    z_do_251 = 0.0;
 double    z_do_252 = 0.0;
 double    z_do_253 = 0.0;
 double    z_do_254 = 0.0;
 double    z_do_255 = 0.0;
 double    z_do_256 = 0.0;
 double    z_do_257 = 0.0;
 double    z_do_258 = 0.0;
 double    z_do_259 = 0.0;
 double    z_do_260 = 0.0;
 double    z_do_261 = 0.0;
 string    z_st_262;
 string    z_st_263;
 string    z_st_264;
 string    z_st_265;
 string    z_st_266;
 string    z_st_267;
 string    z_st_268;
 string    z_st_269;
 string    z_st_270;
 string    z_st_271;
 string    z_st_272;
 string    z_st_273;
 string    z_st_274;
 string    z_st_275;
 string    z_st_276;
 string    z_st_277;
 string    z_st_278;
 string    z_st_279 = "";
 string    z_st_280 = "";
 string    z_st_281 = "";
 string    z_st_282 = "";
 string    z_st_283;
 string    z_st_284;
 string    z_st_285 = "";
 string    z_st_286 = "";
 string    z_st_287 = "";
 string    z_st_288 = "";
 string    z_st_289 = "";
 string    z_st_290 = "";
 long      z_lo_291 = 0;
 long      z_lo_292 = 0;
 long      z_lo_293 = 0;
 long      z_lo_294 = 0;
 long      z_lo_295 = 0;
 long      z_lo_296 = 0;
 long      z_lo_297 = 0;
 long      z_lo_298 = 0;
 long      z_lo_299 = 0;
 long      z_lo_300 = 0;
 long      z_lo_301 = 0;
 long      z_lo_302 = 0;
 long      z_lo_303 = 0;
 long      z_lo_304 = 0;
 long      z_lo_305 = 0;
 long      z_lo_306 = 0;
 long      z_lo_307 = 0;
 long      z_lo_308 = 0;
 long      z_lo_309 = 0;
 double    z_do_310 = 0.0;
 double    z_do_311 = 0.0;
 double    z_do_312 = 0.0;
 double    z_do_313 = 0.0;
 double    z_do_314 = 0.0;
 double    z_do_315 = 0.0;
 double    z_do_316 = 0.0;
 double    z_do_317 = 0.0;
 double    z_do_318 = 0.0;
 double    z_do_319 = 0.0;
 double    z_do_320 = 0.0;
 double    z_do_321 = 1.0;
 long      z_lo_322 = Time[0];
 bool      z_bo_323 = false;
 bool      z_bo_324 = false;
 int       z_in_325 = -1;

#import   "stdlib.ex4"
          string ErrorDescription(int  mu_1);
#property  tester_indicator "FFCal"
#import     


//----------------------------

 int init ()
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 if ( ( StringFind(Symbol(),"GBPAUD",0) < 0 || Period()  !=  5 ) )
  {
  Alert("请使用磅澳5分钟周期运行EA,【炒金子】 QQ837708761. 此EA为破解源码编写"); 
  ExpertRemove(); 
  }
 if ( ( TimeCurrent() >= D'2018.09.21 01:20:15' || TimeLocal() >= D'2018.09.21 01:10:39' ) )
  {
  //Alert("EA使用权限设置出错，请联系顺势 QQ837708761."); 
  //ExpertRemove(); 
  }
 if ( ( TimeCurrent() >= D'2018.09.21 23:15:15' || TimeLocal() >= D'2018.09.21 22:22:39' ) )
  {
  //ExpertRemove(); 
  }
 if ( AccountNumber()  !=  1100012590 )
  {
  //Alert("EA使用权限设置出错，请联系顺势 QQ837708761."); 
  //ExpertRemove(); 
  }
 if ( IsTesting() )
  {
  //Print("EA不允许测试."); 
  //ExpertRemove(); 
  }
 z_do_310 = Digits() ;
 if ( ( z_do_310==3.0 || z_do_310==5.0 ) )
  {
  z_do_311 = Point() * 10.0 ;
  z_do_312 = 10.0 ;
  }
 else
  {
  z_do_311 = Point() ;
  z_do_312 = 1.0 ;
  }
 z_in_222 = z_in_58 ;
 z_in_223 = z_in_58 ;
 if ( z_bo_89 )
  {
  z_do_250 = Open[0] ;
  }
 z_do_251 = AccountBalance() ;
 if ( z_do_92>0.0 )
  {
  z_do_70 = z_do_92 ;
  z_do_71 = z_do_92 ;
  }
 initfibo ( ); 
 initmm ( ); 
 return(0); 
 }
//init
//---------------------  ----------------------------------------

 int start ()
 {
 int         zi_in_1;

//----------------------------
 int        lin_in_1;
 double     lin_do_2;
 int        lin_in_3;
 int        lin_in_4;
 int        lin_in_5;
 int        lin_in_6;
 double     lin_do_7;
 int        lin_in_8;
 int        lin_in_9;
 int        lin_in_10;
 bool       lin_bo_11;
 bool       lin_bo_12;
 bool       lin_bo_13;
 bool       lin_bo_14;
 int        lin_in_15;
 int        lin_in_16;
 double     lin_do_17;
 double     lin_do_18;
 double     lin_do_19;
 int        lin_in_20;
 int        lin_in_21;
 int        lin_in_22;
 int        lin_in_23;
 int        lin_in_24;
 int        lin_in_25;
 double     lin_do_26;
 double     lin_do_27;
 double     lin_do_28;
 double     lin_do_29;

 lin_in_1 = 0;
 lin_do_2 = 0.0;
 lin_in_3 = 0;
 lin_in_4 = 0;
 lin_in_5 = 0;
 lin_in_6 = 0;
 lin_do_7 = 0.0;
 lin_in_8 = 0;
 lin_in_9 = 0;
 lin_in_10 = 0;
 lin_bo_11 = false;
 lin_bo_12 = false;
 lin_bo_13 = false;
 lin_bo_14 = false;
 lin_in_15 = 0;
 lin_in_16 = 0;
 lin_do_17 = 0.0;
 lin_do_18 = 0.0;
 lin_do_19 = 0.0;
 lin_in_20 = 0;
 lin_in_21 = 0;
 lin_in_22 = 0;
 lin_in_23 = 0;
 lin_in_24 = 0;
 lin_in_25 = 0;
 lin_do_26 = 0.0;
 lin_do_27 = 0.0;
 lin_do_28 = 0.0;
 lin_do_29 = 0.0;
 if ( ( TimeCurrent() >= D'2018.09.21 01:20:15' || TimeLocal() >= D'2018.09.21 01:10:39' ) )
  {
 // Alert("EA使用权限设置出错，请联系顺势 QQ837708761."); 
 // ExpertRemove(); 
  }
 if ( ( TimeCurrent() >= D'2018.09.21 23:15:15' || TimeLocal() >= D'2018.09.21 22:22:39' ) )
  {
  //ExpertRemove(); 
  }
 if ( AccountNumber()  !=  1100012590 )
  {
 // Alert("EA使用权限设置出错，请联系顺势 QQ837708761."); 
 // ExpertRemove(); 
  }
 z_do_313 = iMA(Symbol(),60,8,0,MODE_SMA,PRICE_CLOSE,0) ;
 z_do_314 = iMA(Symbol(),60,8,5,MODE_SMA,PRICE_CLOSE,0) ;
 z_do_315 = iRSI(Symbol(),60,14,0,0) ;
 z_do_316 = iMA(Symbol(),15,32,0,MODE_SMA,PRICE_CLOSE,0) ;
 z_do_317 = iMA(Symbol(),15,32,5,MODE_SMA,PRICE_CLOSE,0) ;
 z_do_318 = iMA(Symbol(),15,8,0,MODE_SMA,PRICE_CLOSE,0) ;
 z_do_319 = iMA(Symbol(),15,8,5,MODE_SMA,PRICE_CLOSE,0) ;
 z_do_320 = iMA(Symbol(),5,8,5,MODE_SMA,PRICE_CLOSE,0) ;
 if ( 是否为以美元显示的美分账户 )
  {
  z_do_321 = lots * 0.2 ;
  }
 else
  {
  z_do_321 = lots * 20.0 ;
  }
 if ( ( Close[3]>z_do_320 || Close[4]>z_do_320 ) && Close[1]<Low[2] && Close[1]<Low[3] && Close[1]<Low[4] )
  {
  z_bo_323 = true ;
  }
 else
  {
  z_bo_323 = false ;
  }
 if ( ( Close[3]<z_do_320 || Close[4]<z_do_320 ) && Close[1]>High[2] && Close[1]>High[3] && Close[1]>High[4] )
  {
  z_bo_324 = true ;
  }
 else
  {
  z_bo_324 = false ;
  }
 for (zi_in_1 = OrdersTotal() - 1 ; zi_in_1 >= 0 ; zi_in_1 = zi_in_1 - 1)
  {
  OrderSelect(zi_in_1,SELECT_BY_POS,MODE_TRADES); 
  if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && ( z_do_316<z_do_317 || z_do_318<z_do_317 || z_bo_323 ) && OrderType() == 0 && OrdersProfit1 ( magic)>z_do_321 )
    {
    CloseOrders ( magic); 
    z_lo_322 = Time[0] ;
    }
   if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && ( z_do_316>z_do_317 || z_do_318>z_do_317 || z_bo_324 ) && OrderType() == 1 && OrdersProfit1 ( magic)>z_do_321 )
    {
    CloseOrders ( magic); 
    z_lo_322 = Time[0] ;
   }}
  }
 if ( ( z_bo_10 || (z_bo_151 && Hour() >= z_in_152) ) )
  {
  closeall(); 
  return(0); 
  }
 if ( z_bo_11 )
  {
  close(0); 
  }
 if ( z_bo_12 )
  {
  close(1); 
  }
 if ( z_bo_87 && iVolume(NULL,0,0) > z_in_88 )
  {
  lin_bo_11 = true;
  }
 else
  {
  lin_bo_11 = false;
  }

 if ( Bars <  100 )
  {
  lin_bo_13 = true;
  }
 else
  {
  lin_bo_13 = false;
  }
 if ( ( lin_bo_11 || initialbar ( ) || lin_bo_13 ) )
  {
  return(0); 
  }
 randommagic ( ); 
 if ( ( z_bo_34 || z_bo_37 || z_bo_40 || z_bo_43 || z_bo_46 || z_bo_49 ) )
  {
  checkbasket(); 
  }
 if ( ( z_st_285 == "CLOSE" || z_st_286 == "CLOSE" || z_st_288 == "CLOSE" || z_st_287 == "CLOSE" || z_st_290 == "CLOSE" || z_st_289 == "CLOSE" ) )
  {
  return(0); 
  }
 if ( z_bo_13 )
  {
  GlobalVariableSet("vGrafBalance",AccountBalance()); 
  GlobalVariableSet("vGrafEquity",AccountEquity()); 
  }
 data ( ); 
 sleep(); 
 exit(); 
 entry(); 
 z_bo_180 = false ;
 z_bo_181 = false ;
 z_bo_182 = true ;
 z_bo_183 = true ;
 if ( z_bo_94 )
  {
  checkaddpositions(); 
  }
 trading(); 
 stop(); 
 modify ( ); 
 if ( ( ( !(z_bo_180) && !(z_bo_181) ) || max ( ) ) )
  {
  return(0); 
  }
 lot ( ); 
 martingale ( ); 
 if ( z_bo_28 )
  {
  checkalembert(); 
  }
 if ( z_bo_26 )
  {
  checkfibomartingale(); 
  }
 recovery ( ); 
 time ( ); 
 z_bo_187 = true ;
 if ( z_bo_154 && checknews() )
  {
  z_bo_187 = false ;
  }
 ticket ( ); 
 return(0); 
 }
//start
//---------------------  ----------------------------------------


//----------------------------


//----------------------------

 int signal (int mu_0, int mu_1)
 {
 double      zi_do_1;
 double      zi_do_2;

//----------------------------

 zi_do_1 = 0.0 ;
 zi_do_2 = 0.0 ;
 zi_do_1 = iHigh(NULL,period(z_in_117),iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,mu_1 + 1)) ;
 zi_do_2 = iLow(NULL,period(z_in_117),iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,mu_1 + 1)) ;
 if ( Close[mu_1]<zi_do_2 && iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,mu_1 + 1) >= z_in_116 && ( period(z_in_119) == 0 || (period(z_in_119) > 0 && iADX(NULL,period(z_in_119),z_in_120,0,1,mu_1)>z_in_121) ) && mu_0 == 0 )
  {
  return(1); 
  }
 if ( Close[mu_1]>zi_do_1 && iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,mu_1 + 1) >= z_in_116 && ( period(z_in_119) == 0 || (period(z_in_119) > 0 && iADX(NULL,period(z_in_119),z_in_120,0,1,mu_1)>z_in_121) ) && mu_0 == 1 )
  {
  return(2); 
  }
 return(0); 
 }
//signal
//---------------------  ----------------------------------------

 int exitsignal (int mu_0, int mu_1)
 {
 double      zi_do_1;
 double      zi_do_2;

//----------------------------

 zi_do_1 = 0.0 ;
 zi_do_2 = 0.0 ;
 zi_do_1 = iHigh(NULL,period(z_in_117),iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,mu_1 + 1)) ;
 zi_do_2 = iLow(NULL,period(z_in_117),iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,mu_1 + 1)) ;
 if ( Close[mu_1]>zi_do_1 && iLowest(NULL,period(z_in_117),MODE_LOW,z_in_123,mu_1 + 1) >= z_in_124 && mu_0 == 0 )
  {
  return(1); 
  }
 if ( Close[mu_1]<zi_do_2 && iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_123,mu_1 + 1) >= z_in_124 && mu_0 == 1 )
  {
  return(2); 
  }
 return(0); 
 }
//exitsignal
//---------------------  ----------------------------------------

 void exit ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 double     lin_do_4;
 double     lin_do_5;
 int        lin_in_6;
 int        lin_in_7;
 int        lin_in_8;
 double     lin_do_9;
 double     lin_do_10;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 lin_in_6 = 0;
 lin_in_7 = 0;
 lin_in_8 = 0;
 lin_do_9 = 0.0;
 lin_do_10 = 0.0;
 z_in_220 = 0 ;
 z_in_221 = 0 ;
 if (!(z_bo_122) )  return;
 lin_in_2 = 0;
 lin_do_4 = iHigh(NULL,period(z_in_117),iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,z_in_125 + 1));
 lin_do_5 = iLow(NULL,period(z_in_117),iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,z_in_125 + 1));
 if ( Close[z_in_125]>lin_do_4 && iLowest(NULL,period(z_in_117),MODE_LOW,z_in_123,z_in_125 + 1) >= z_in_124 && lin_in_2 == 0 )
  {
  lin_in_1 = 1;
  }
 else
  {
  if ( Close[z_in_125]<lin_do_5 && iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_123,z_in_125 + 1) >= z_in_124 && lin_in_2 == 1 )
   {
   lin_in_1 = 2;
   }
  else
   {
   lin_in_1 = 0;
  }}
 if ( lin_in_1 == 1 )
  {
  z_in_220 = 1 ;
  }
 lin_in_7 = 1;
 lin_do_9 = iHigh(NULL,period(z_in_117),iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,z_in_125 + 1));
 lin_do_10 = iLow(NULL,period(z_in_117),iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,z_in_125 + 1));
 if ( Close[z_in_125]>lin_do_9 && iLowest(NULL,period(z_in_117),MODE_LOW,z_in_123,z_in_125 + 1) >= z_in_124 && lin_in_7 == 0 )
  {
  lin_in_6 = 1;
  }
 else
  {
  if ( Close[z_in_125]<lin_do_10 && iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_123,z_in_125 + 1) >= z_in_124 && lin_in_7 == 1 )
   {
   lin_in_6 = 2;
   }
  else
   {
   lin_in_6 = 0;
  }}
 if (!(lin_in_6 == 2) )  return;
 z_in_221 = 2 ;
 }
//exit
//---------------------  ----------------------------------------

 void entry ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 double     lin_do_4;
 double     lin_do_5;
 int        lin_in_6;
 int        lin_in_7;
 int        lin_in_8;
 double     lin_do_9;
 double     lin_do_10;
 int        lin_in_36;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 lin_in_6 = 0;
 lin_in_7 = 0;
 lin_in_8 = 0;
 lin_do_9 = 0.0;
 lin_do_10 = 0.0;
 if ( z_bo_66 )
  {
  z_in_188 = 0 ;
  if ( HistoryTotal() > 0 )
   {
   for (z_in_190=HistoryTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
    {
    OrderSelect(z_in_190,SELECT_BY_POS,MODE_HISTORY); 
    if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
     {
     if ( OrderOpenTime() < iTime(NULL,1440,0) )
      break;
     z_in_188=z_in_188 + 1;
     }
    }
  }}
 z_in_218 = 0 ;
 z_in_219 = 0 ;
 if ( z_in_220  !=  1 )
  {
  lin_in_2 = 0;
  lin_do_4 = iHigh(NULL,period(z_in_117),iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,z_in_125 + 1));
  lin_do_5 = iLow(NULL,period(z_in_117),iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,z_in_125 + 1));
  if ( Close[z_in_125]<lin_do_5 && iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,z_in_125 + 1) >= z_in_116 && ( period(z_in_119) == 0 || (period(z_in_119) > 0 && iADX(NULL,period(z_in_119),z_in_120,0,1,z_in_125)>z_in_121) ) && lin_in_2 == 0 )
   {
   lin_in_1 = 1;
   }
  else
   {
   if ( Close[z_in_125]>lin_do_4 && iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,z_in_125 + 1) >= z_in_116 && ( period(z_in_119) == 0 || (period(z_in_119) > 0 && iADX(NULL,period(z_in_119),z_in_120,0,1,z_in_125)>z_in_121) ) && lin_in_2 == 1 )
    {
    lin_in_1 = 2;
    }
   else
    {
    lin_in_1 = 0;
   }}
  if ( lin_in_1 == 1 && ( z_bo_66 == false || z_in_188 <  z_in_67 ) && ( z_bo_143 == false || (!((Month()==z_in_144 && Day()<=z_in_145)) && !((Month()==z_in_146 && Day()>=z_in_147))) ) && IsTradeContextBusy() == false )
   {
   z_in_218 = 1 ;
  }}
 if (!(z_in_221  !=  2) )  return;
 lin_in_7 = 1;
 lin_do_9 = iHigh(NULL,period(z_in_117),iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,z_in_125 + 1));
 lin_do_10 = iLow(NULL,period(z_in_117),iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,z_in_125 + 1));
 if ( Close[z_in_125]<lin_do_10 && iHighest(NULL,period(z_in_117),MODE_HIGH,z_in_115,z_in_125 + 1) >= z_in_116 &&  ( period(z_in_119) == 0 || (period(z_in_119) > 0 && iADX(NULL,period(z_in_119),z_in_120,0,1,z_in_125)>z_in_121) ) &&  lin_in_7 == 0 )
  {
  lin_in_6 = 1;
  }
 else
  { 
  if  (Close[z_in_125]>lin_do_9 &&  iLowest(NULL,period(z_in_117),MODE_LOW,z_in_115,z_in_125 + 1) >= z_in_116 &&  ( period(z_in_119) == 0 || (period(z_in_119) > 0 &&  iADX(NULL, period(z_in_119),z_in_120,0,1,z_in_125)>z_in_121) ) &&   lin_in_7 == 1 )
   {
   lin_in_6 = 2;
   }
  else
   {
   lin_in_6 = 0;
  }}
 if (!(lin_in_6 == 2) )  return;
 if (!(( z_bo_66 == false || z_in_188 <  z_in_67 )) )  return;
 if (!(( z_bo_143 == false || (!((Month()==z_in_144 && Day()<=z_in_145)) && !((Month()==z_in_146 && Day()>=z_in_147))) )) )  return;
 if (!(IsTradeContextBusy() == false) )  return;
 z_in_219 = 2 ;
 }
//entry
//---------------------  ----------------------------------------

 int bar (int mu_0)
 {
 int         zi_in_1;

//----------------------------

 zi_in_1 = 0 ;
 if ( OrdersTotal() > 0 )
  {
  for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
   {
   OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
   if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderCloseTime() == 0 )
    {
    if ( OrderOpenTime() < iTime(NULL,0,0) )
     break;
    if ( ( OrderType() == 0 || OrderType() == 2 || (OrderType() == 4 && mu_0 == 0) ) && OrderOpenTime() >= iTime(NULL,0,0) )
     {
     zi_in_1 = zi_in_1 + 1;
     }
    if ( ( OrderType() == 1 || OrderType() == 3 || (OrderType() == 5 && mu_0 == 1) ) && OrderOpenTime() >= iTime(NULL,0,0) )
     {
     zi_in_1 = zi_in_1 + 1;
    }}
   }
  }
 if ( HistoryTotal() > 0 )
  {
  for (z_in_190=HistoryTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
   {
   OrderSelect(z_in_190,SELECT_BY_POS,MODE_HISTORY); 
   if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
    {
    if ( OrderOpenTime() < iTime(NULL,0,0) )
     break;
    if ( ( OrderType() == 0 || OrderType() == 2 || (OrderType() == 4 && mu_0 == 0) ) && OrderOpenTime() >= iTime(NULL,0,0) )
     {
     zi_in_1 = zi_in_1 + 1;
     }
    if ( ( OrderType() == 1 || OrderType() == 3 || (OrderType() == 5 && mu_0 == 1) ) && OrderOpenTime() >= iTime(NULL,0,0) )
     {
     zi_in_1 = zi_in_1 + 1;
    }}
   }
  }
 return(zi_in_1); 
 }
//bar
//---------------------  ----------------------------------------

 void visual ()
 {

//----------------------------

 if (!(z_bo_13) )  return;
 GlobalVariableSet("vGrafBalance",AccountBalance()); 
 GlobalVariableSet("vGrafEquity",AccountEquity()); 
 }
//visual
//---------------------  ----------------------------------------

 void randommagic ()
 {

//----------------------------

 if (!(z_bo_2) )  return;
 if (!(z_lo_308  !=  iTime(NULL,1440,0)) )  return;
 magic = MathRand() ;
 z_lo_308 = iTime(NULL,1440,0) ;
 }
//randommagic
//---------------------  ----------------------------------------

 void initoptimization ()
 {

//----------------------------

 z_do_251 = AccountBalance() ;
 if (!(z_do_92>0.0) )  return;
 z_do_70 = z_do_92 ;
 z_do_71 = z_do_92 ;
 }
//initoptimization
//---------------------  ----------------------------------------

 bool optimization ()
 {

//----------------------------

 if ( z_bo_87 && iVolume(NULL,0,0) > z_in_88 )
  {
  return(true); 
  }
 return(false); 
 }
//optimization
//---------------------  ----------------------------------------

 void initinitialbar ()
 {

//----------------------------

 if (!(z_bo_89) )  return;
 z_do_250 = Open[0] ;
 }
//initinitialbar
//---------------------  ----------------------------------------

 bool initialbar ()
 {

//----------------------------

 if ( z_bo_89 && z_do_250==Open[0] )
  {
  return(true); 
  }
 return(false); 
 }
//initialbar
//---------------------  ----------------------------------------

 bool minbars ()
 {

//----------------------------

 if ( Bars <  100 )
  {
  return(true); 
  }
 return(false); 
 }
//minbars
//---------------------  ----------------------------------------

 void data ()
 {

//----------------------------
 double     lin_do_3;

 if ( z_in_198 == 1 )
  {
  z_in_193 = 0 ;
  z_in_194 = 0 ;
  }
 if ( z_bo_61 )
  {
  z_in_214 = 0 ;
  z_in_215 = 0 ;
  }
 z_do_241 = 0.0 ;
 z_do_242 = 0.0 ;
 if ( OrdersTotal() > 0 )
  {
  for (z_in_190 = 0 ; z_in_190 < OrdersTotal() ; z_in_190=z_in_190 + 1)
   {
   OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
   if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderCloseTime() == 0 )
    {
    if ( OrderType() == 0 )
     {
     if ( z_bo_61 && ( z_in_214 == 0 || z_in_214 > OrderOpenTime() ) )
      {
      z_in_214 = OrderOpenTime() ;
      }
     z_lo_295 = OrderOpenTime() ;
     if ( z_bo_94 )
      {
      z_do_241 = OrderOpenPrice() ;
      }
     if ( z_in_198 == 1 )
      {
      lin_do_3=z_in_193 + OrderProfit(); 
      z_in_193 = lin_do_3 ;
     }}
    if ( OrderType() == 1 )
     {
     if ( z_bo_61 && ( z_in_214 == 0 || z_in_215 > OrderOpenTime() ) )
      {
      z_in_215 = OrderOpenTime() ;
      }
     z_lo_297 = OrderOpenTime() ;
     if ( z_bo_94 )
      {
      z_do_242 = OrderOpenPrice() ;
      }
     if ( z_in_198 == 1 )
      {
      z_in_194 = z_in_194 + OrderProfit() ;
    }}}
   }
  }
 if (!(z_in_198 == 1) )  return;
 z_do_237 = z_in_193 + z_in_194 ;
 }
//data
//---------------------  ----------------------------------------

 void inittrading ()
 {

//----------------------------

 z_bo_180 = false ;
 z_bo_181 = false ;
 }
//inittrading
//---------------------  ----------------------------------------

 void trading ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 int        lin_in_4;
 int        lin_in_5;
 int        lin_in_6;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_in_4 = 0;
 lin_in_5 = 0;
 lin_in_6 = 0;
 z_bo_184 = true ;
 z_bo_185 = true ;
 if ( z_bo_91 )
  {
  if ( count ( 1) > 0 )
   {
   if ( z_bo_64 )
    {
    z_bo_185 = false ;
    }
   else
    {
    z_bo_184 = false ;
   }}
  if ( count ( 0) > 0 )
   {
   if ( z_bo_64 )
    {
    z_bo_184 = false ;
    }
   else
    {
    z_bo_185 = false ;
  }}}
 if ( z_in_218 == 1 && z_bo_182 && z_bo_184 && z_bo_177 && z_bo_179 && ( z_bo_148 == false || (Day()  !=  z_in_149 && Day()  !=  z_in_150) ) )
  {
  if ( z_bo_64 )
   {
   z_bo_181 = true ;
   }
  else
   {
   z_bo_180 = true ;
   }
  if ( z_bo_90 )
   {
   z_bo_177 = false ;
   z_bo_178 = true ;
   }
  if ( z_bo_62 )
   {
   if ( z_bo_64 )
    {
    z_st_270 = "SHORT" ;
    }
   else
    {
    z_st_270 = "LONG" ;
  }}}
 if (!(z_in_219 == 2) )  return;
 if (!(z_bo_183) )  return;
 if (!(z_bo_185) )  return;
 if (!(z_bo_178) )  return;
 if (!(z_bo_179) )  return;
 if (!(( z_bo_148 == false || (Day()  !=  z_in_149 && Day()  !=  z_in_150) )) )  return;
 if ( z_bo_64 )
  {
  z_bo_180 = true ;
  }
 else
  {
  z_bo_181 = true ;
  }
 if ( z_bo_90 )
  {
  z_bo_177 = true ;
  z_bo_178 = false ;
  }
 if (!(z_bo_62) )  return;
 if ( z_bo_64 )
  {
  z_st_270 = "LONG" ;
  return;
  }
 z_st_270 = "SHORT" ;
 }
//trading
//---------------------  ----------------------------------------

 int open (int mu_0, double mu_1, double mu_2, double mu_3, double mu_4, int mu_5, color mu_6)
 {
 int         zi_in_1;

//----------------------------
 double     lin_do_1;

 lin_do_1 = 0.0;
 zi_in_1 = 0 ;
 if ( mu_1<z_do_17 )
  {
  mu_1 = z_do_17 ;
  }
 if ( mu_1>z_do_18 )
  {
  mu_1 = z_do_18 ;
  }
 if ( ( mu_0 == 0 || mu_0 == 4 || mu_0 == 2 ) )
  {
  if ( z_bo_68 == false && mu_3>0.0 )
   {
   z_do_225 = mu_2 - mu_3 * z_do_311 ;
   }
  else
   {
   z_do_225 = 0.0 ;
   }
  if ( z_bo_69 == false && mu_4>0.0 )
   {
   z_do_226 = mu_4 * z_do_311 + mu_2 ;
   }
  else
   {
   z_do_226 = 0.0 ;
   }
  if ( z_bo_53 )
   {
   z_do_225 = 0.0 ;
   z_do_226 = 0.0 ;
  }}
 if ( ( mu_0 == 1 || mu_0 == 5 || mu_0 == 3 ) )
  {
  if ( z_bo_68 == false && mu_3>0.0 )
   {
   z_do_225 = mu_3 * z_do_311 + mu_2 ;
   }
  else
   {
   z_do_225 = 0.0 ;
   }
  if ( z_bo_69 == false && mu_4>0.0 )
   {
   z_do_226 = mu_2 - mu_4 * z_do_311 ;
   }
  else
   {
   z_do_226 = 0.0 ;
   }
  if ( z_bo_53 )
   {
   z_do_225 = 0.0 ;
   z_do_226 = 0.0 ;
  }}
 zi_in_1 = OrderSend(Symbol(),mu_0,NormalizeDouble(mu_1,z_in_19),NormalizeDouble(mu_2,z_do_310),slippage * z_do_312,z_do_225,z_do_226,z_st_1 + " " + DoubleToString(magic,0),magic,mu_5,mu_6) ;
 return(zi_in_1); 
 }
//open
//---------------------  ----------------------------------------

 void buy ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 int        lin_in_4;
 int        lin_in_5;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_in_4 = 0;
 lin_in_5 = 0;
 if ( z_bo_108 )
  {
  z_do_70 = (Ask - iLow(NULL,z_in_109,iLowest(NULL,z_in_109,MODE_LOW,z_in_110,z_in_125))) / z_do_311 ;
  if ( z_do_70<MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13) )
   {
   z_do_70 = MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13) ;
  }}
 if ( z_bo_111 )
  {
  z_do_71 = (iHigh(NULL,z_in_112,iHighest(NULL,z_in_112,MODE_HIGH,z_in_113,z_in_125)) - Ask) / z_do_311 ;
  if ( z_do_71<MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13) )
   {
   z_do_71 = MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13) ;
  }}
 if ( z_bo_60 )
  {
  delete1 ( 5); 
  delete1 ( 3); 
  }
 z_in_207 = 0 ;
 z_in_206 = 0 ;
 z_in_209 = 0 ;
 if ( ( z_bo_55 || z_bo_56 ) && z_in_85 > 0 )
  {
  z_in_209 = TimeCurrent() + z_in_85 * 60 - 5 ;
  }
 if ( z_bo_54 )
  {
  
   if(z_in_198 == 0 && z_in_207 <= 0 && z_in_206 <  z_in_191){
  if(z_in_198 == 0 && z_in_207 <= 0 )
  do
   {
   while (!(IsTradeAllowed()))
    {
    Sleep(5000); 
    }
   RefreshRates(); 
   z_in_207 = open(0,z_do_227,Ask,z_do_70,z_do_71,z_in_209,Blue) ;
   if ( z_in_207 <  0 )
    {
    if ( z_bo_3 )
     {
     Print("Error opening BUY order! ",ErrorDescription(GetLastError())); 
     }
    z_in_206=z_in_206 + 1;
    }
   }
   while(( z_in_207 <= 0 && z_in_206 < z_in_191 ));
   }
   if(z_in_198 == 1 && z_in_207 <= 0 && z_in_206 <  z_in_191){
  if(z_in_198 == 1 && z_in_207 <= 0 )
  do
   {
   while (!(IsTradeAllowed()))
    {
    Sleep(5000); 
    }
   RefreshRates(); 
   z_in_207 = open(0,z_do_227,Ask,z_do_70,0.0,z_in_209,Blue) ;
   if ( z_in_207 <  0 )
    {
    if ( z_bo_3 )
     {
     Print("Error opening BUY order! ",ErrorDescription(GetLastError())); 
     }
    z_in_206=z_in_206 + 1;
    }
   }
   while(( z_in_207 <= 0 && z_in_206 < z_in_191 ));
   }
  if ( z_bo_55 && z_lo_299  !=  Time[0] )
   {
   if ( z_bo_59 )
    {
    delete1 ( 4); 
    }
   RefreshRates(); 
   z_in_207 = open(4,z_do_227,z_in_58 * z_do_311 + Ask,z_do_70,z_do_71,z_in_209,Blue) ;
   z_lo_299 = Time[0] ;
   }
  if ( z_bo_56 && z_lo_300  !=  Time[0] )
   {
   if ( z_bo_59 )
    {
    delete1 ( 2); 
    }
   RefreshRates(); 
   z_in_207 = open(2,z_do_227,Bid - z_in_58 * z_do_311,z_do_70,z_do_71,z_in_209,Blue) ;
   z_lo_300 = Time[0] ;
   }
  if ( z_bo_99 && z_lo_303  !=  Time[0] )
   {
   if ( z_bo_100 )
    {
    delete1 ( 4); 
    }
   RefreshRates(); 
   z_in_207 = open(5,z_do_227,Bid - z_do_70 * z_do_311,z_in_101,z_in_102,z_in_209,Red) ;
   z_lo_303 = Time[0] ;
   }
  if ( z_bo_54 && z_in_207 <= 0 && z_bo_3 )
   {
   Print("Error Occured : " + ErrorDescription(GetLastError())); 
   }
  if (!(z_lo_306  !=  Time[0]) )  return;
  RefreshRates(); 
  if ( z_bo_5 )
   {
   SendMail("[Long Trade]","[" + Symbol() + "] " + DoubleToString(Ask,z_do_310)); 
   }
  if ( z_bo_6 )
   {
   Alert(Symbol()," Long Trade @  Hour ",Hour(),"  Minute ",Minute()); 
   }
  if ( z_bo_7 )
   {
   PlaySound("alert.wav"); 
   }
  z_lo_306 = Time[0] ;
  }}
//buy
//---------------------  ----------------------------------------



  void sell ()
  {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 int        lin_in_4;
 int        lin_in_5;
 double     lin_do_7;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_in_4 = 0;
 lin_in_5 = 0;
 if ( z_bo_108 )
  {
  lin_do_7 = iHigh(NULL,z_in_109,iHighest(NULL,z_in_109,MODE_HIGH,z_in_110,z_in_125)) - Bid;
  z_do_70 = lin_do_7 / z_do_311 ;
  if ( z_do_70<MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13) )
   {
   z_do_70 = MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13) ;
  }}
 if ( z_bo_111 )
  {
  z_do_71 = (Bid - iLow(NULL,z_in_112,iLowest(NULL,z_in_112,MODE_LOW,z_in_113,z_in_125))) / z_do_311 ;
  if ( z_do_71<MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13) )
   {
   z_do_71 = MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13) ;
  }}
 if ( z_bo_60 )
  {
  delete1 ( 4); 
  delete1 ( 2); 
  }
 z_in_207 = 0 ;
 z_in_206 = 0 ;
 z_in_209 = 0 ;
 if ( ( z_bo_55 || z_bo_56 ) && z_in_85 > 0 )
  {
  z_in_209 = TimeCurrent() + z_in_85 * 60 - 5 ;
  }
 if ( z_bo_54 )
  {
  
   if(z_in_198 == 0 && z_in_207 <= 0 && z_in_206 <  z_in_191){
  if(z_in_198 == 0 && z_in_207 <= 0 )
  do
   {
   while (!(IsTradeAllowed()))
    {
    Sleep(5000); 
    }
   RefreshRates(); 
   z_in_207 = open(1,z_do_228,Bid,z_do_70,z_do_71,z_in_209,Red) ;
   if ( z_in_207 <  0 )
    {
    if ( z_bo_3 )
     {
     Print("Error opening BUY order! ",ErrorDescription(GetLastError())); 
     }
    z_in_206=z_in_206 + 1;
    }
   }
   while(( z_in_207 <= 0 && z_in_206 < z_in_191 ));
   }
   if(z_in_198 == 1 && z_in_207 <= 0 && z_in_206 <  z_in_191){
  if(z_in_198 == 1 && z_in_207 <= 0 )
  do
   {
   while (!(IsTradeAllowed()))
    {
    Sleep(5000); 
    }
   RefreshRates(); 
   z_in_207 = open(1,z_do_228,Bid,z_do_70,0.0,z_in_209,Red) ;
   if ( z_in_207 <  0 )
    {
    if ( z_bo_3 )
     {
     Print("Error opening BUY order! ",ErrorDescription(GetLastError())); 
     }
    z_in_206=z_in_206 + 1;
    }
   }
   while(( z_in_207 <= 0 && z_in_206 < z_in_191 ));
   }
  if ( z_bo_55 && z_lo_301  !=  Time[0] )
   {
   if ( z_bo_59 )
    {
    delete1 ( 5); 
    }
   RefreshRates(); 
   z_in_207 = open(5,z_do_228,Bid - z_in_58 * z_do_311,z_do_70,z_do_71,z_in_209,Red) ;
   z_lo_301 = Time[0] ;
   }
  if ( z_bo_56 && z_lo_302  !=  Time[0] )
   {
   if ( z_bo_59 )
    {
    delete1 ( 3); 
    }
   RefreshRates(); 
   z_in_207 = open(3,z_do_228,z_in_58 * z_do_311 + Ask,z_do_70,z_do_71,z_in_209,Red) ;
   z_lo_302 = Time[0] ;
   }
  if ( z_bo_99 && z_lo_304  !=  Time[0] )
   {
   if ( z_bo_100 )
    {
    delete1 ( 5); 
    }
   RefreshRates(); 
   z_in_207 = open(4,z_do_227,z_do_70 * z_do_311 + Ask,z_in_101,z_in_102,z_in_209,Blue) ;
   z_lo_304 = Time[0] ;
   }
  if ( z_bo_54 && z_in_207 <= 0 && z_bo_3 )
   {
   Print("Error Occured : " + ErrorDescription(GetLastError())); 
   }
  if (!(z_lo_306  !=  Time[0]) )  return;
  RefreshRates(); 
  if ( z_bo_5 )
   {
   SendMail("[Short Trade]","[" + Symbol() + "] " + DoubleToString(Bid,z_do_310)); 
   }
  if ( z_bo_6 )
   {
   Alert(Symbol()," Short Trade @  Hour ",Hour(),"  Minute ",Minute()); 
   }
  if ( z_bo_7 )
   {
   PlaySound("alert.wav"); 
   }
  z_lo_306 = Time[0] ;
  }}
//sell
//---------------------  ----------------------------------------


  void ticket ()
  {

//----------------------------

 if (!(z_bo_186) )  return;
 if (!(z_bo_187) )  return;
 if ( Time[0]  !=  z_lo_322 && z_do_313>z_do_314 && z_bo_180 && !(z_bo_9) && bar(0) <  z_in_65 )
  {
  buy(); 
  }
 if (!(Time[0]  !=  z_lo_322) )  return;
 if (!(z_do_313<z_do_314) )  return;
 if (!(z_bo_181) )  return;
 if (z_bo_8) return;
 if (!(bar(1) <  z_in_65) )  return;
 sell(); 
 }
//ticket
//---------------------  ----------------------------------------

 int countglobal ()
 {
 int         zi_in_1;

//----------------------------

 zi_in_1 = 0 ;
 if ( OrdersTotal() > 0 )
  {
  for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
   {
   OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
   zi_in_1 = zi_in_1 + 1;
   }
  return(zi_in_1); 
  }
 return(0); 
 }
//countglobal
//---------------------  ----------------------------------------

 int count (int mu_0)
 {
 int         zi_in_1;

//----------------------------

 zi_in_1 = 0 ;
 if ( OrdersTotal() > 0 )
  {
  for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
   {
   OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
   if ( OrderSymbol() == Symbol() && OrderType() == mu_0 && OrderMagicNumber() == magic )
    {
    zi_in_1 = zi_in_1 + 1;
    }
   }
  return(zi_in_1); 
  }
 return(0); 
 }
//count
//---------------------  ----------------------------------------

 int countall (int mu_0)
 {
 int         zi_in_1;

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 int        lin_in_4;
 int        lin_in_5;
 int        lin_in_6;
 int        lin_in_7;
 int        lin_in_8;
 int        lin_in_9;
 int        lin_in_10;
 int        lin_in_11;
 int        lin_in_12;
 int        lin_in_13;
 int        lin_in_14;
 int        lin_in_15;
 int        lin_in_16;
 int        lin_in_17;
 int        lin_in_18;
 int        lin_in_19;
 int        lin_in_20;
 int        lin_in_21;
 int        lin_in_22;
 int        lin_in_23;
 int        lin_in_24;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_in_4 = 0;
 lin_in_5 = 0;
 lin_in_6 = 0;
 lin_in_7 = 0;
 lin_in_8 = 0;
 lin_in_9 = 0;
 lin_in_10 = 0;
 lin_in_11 = 0;
 lin_in_12 = 0;
 lin_in_13 = 0;
 lin_in_14 = 0;
 lin_in_15 = 0;
 lin_in_16 = 0;
 lin_in_17 = 0;
 lin_in_18 = 0;
 lin_in_19 = 0;
 lin_in_20 = 0;
 lin_in_21 = 0;
 lin_in_22 = 0;
 lin_in_23 = 0;
 lin_in_24 = 0;
 zi_in_1 = 0 ;
 if ( mu_0 == 0 )
  {
  zi_in_1 = count ( 0) + count ( 1);
  }
 if ( mu_0 == 1 )
  {
  zi_in_1 = count ( 0) + count ( 1) + count ( 4) + count ( 5) + count ( 2) + count ( 3);
  }
 return(zi_in_1); 
 }
//countall
//---------------------  ----------------------------------------

 bool max ()
 {

//----------------------------

 if ( maxspread!=0.0 && Ask - Bid>maxspread * z_do_311 )
  {
  return(true); 
  }
 if ( maxtrades <  500 && countall(0) >= maxtrades )
  {
  return(true); 
  }
 return(false); 
 }
//max
//---------------------  ----------------------------------------

 double history (int mu_0)
 {
 double      zi_do_1;
 double      zi_do_2;

//----------------------------

 zi_do_1 = 0.0 ;
 zi_do_2 = 0.0 ;
 zi_do_1 = 0.0 ;
 zi_do_2 = 0.0 ;
 if ( HistoryTotal() > 0 )
  {
  for (z_in_190=HistoryTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
   {
   if ( zi_do_1!=0.0 )
    break;
   OrderSelect(z_in_190,SELECT_BY_POS,MODE_HISTORY); 
   if ( ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderType() == 0 ) || OrderType() == 1 ) )
    {
    zi_do_1 = OrderProfit() ;
    zi_do_2 = OrderLots() ;
    }
   }
  }
 if ( mu_0 == 0 )
  {
  return(zi_do_2); 
  }
 if ( mu_0 == 1 )
  {
  return(zi_do_1); 
  }
 return(0.0); 
 }
//history
//---------------------  ----------------------------------------

 double countprofit (int mu_0)
 {
 double      zi_do_1;

//----------------------------

 zi_do_1 = 0.0 ;
 zi_do_1 = 0.0 ;
 if ( OrdersTotal() > 0 )
  {
  for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
   {
   OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
   if ( OrderSymbol() == Symbol() && OrderType() == 0 && OrderMagicNumber() == magic )
    {
    if ( mu_0 == 0 )
     {
     zi_do_1 = (OrderClosePrice() - OrderOpenPrice()) / z_do_311 + zi_do_1 ;
     }
    if ( mu_0 == 1 )
     {
     zi_do_1 = zi_do_1 + OrderProfit() ;
    }}
   if ( OrderSymbol() == Symbol() && OrderType() == 1 && OrderMagicNumber() == magic )
    {
    if ( mu_0 == 0 )
     {
     zi_do_1 = (OrderOpenPrice() - OrderClosePrice()) / z_do_311 + zi_do_1 ;
     }
    if ( mu_0 == 1 )
     {
     zi_do_1 = zi_do_1 + OrderProfit() ;
    }}
   }
  return(zi_do_1); 
  }
 return(0.0); 
 }
//countprofit
//---------------------  ----------------------------------------

 double counthistoprofit (int mu_0)
 {
 double      zi_do_1;

//----------------------------
 int        lin_in_1;

 zi_do_1 = 0.0 ;
 zi_do_1 = 0.0 ;
 if ( HistoryTotal() > 0 )
  {
  for (z_in_190=HistoryTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
   {
   OrderSelect(z_in_190,SELECT_BY_POS,MODE_HISTORY); 
   if ( OrderSymbol() == Symbol() && OrderType() == 0 && OrderMagicNumber() == magic )
    {
    if ( mu_0 == 2 )
     break;
    if ( mu_0 == 3 )
     {
     lin_in_1 = TimeDay(OrderOpenTime());
     if ( lin_in_1 != TimeDay(Time[0]) )
      break;
     }
    if ( mu_0 == 4 )
     break;
    if ( mu_0 == 5 )
     {
     lin_in_1 = TimeMonth(OrderOpenTime());
     if ( lin_in_1 != TimeMonth(Time[0]) )
      break;
     }
    if ( mu_0 == 0 )
     {
     zi_do_1 = (OrderClosePrice() - OrderOpenPrice()) / z_do_311 + zi_do_1 ;
     }
    if ( mu_0 == 1 )
     {
     zi_do_1 = zi_do_1 + OrderProfit() ;
     }
    if ( mu_0 == 2 )
     {
     lin_in_1 = TimeDay(OrderOpenTime());
     if ( lin_in_1 == TimeDay(Time[0]) )
      {
      zi_do_1 = (OrderClosePrice() - OrderOpenPrice()) / z_do_311 + zi_do_1 ;
     }}
    if ( mu_0 == 3 )
     {
     lin_in_1 = TimeDay(OrderOpenTime());
     if ( lin_in_1 == TimeDay(Time[0]) )
      {
      zi_do_1 = zi_do_1 + OrderProfit() ;
     }}
    if ( mu_0 == 4 )
     {
     lin_in_1 = TimeMonth(OrderOpenTime());
     if ( lin_in_1 == TimeMonth(Time[0]) )
      {
      zi_do_1 = (OrderClosePrice() - OrderOpenPrice()) / z_do_311 + zi_do_1 ;
     }}
    if ( mu_0 == 5 )
     {
     lin_in_1 = TimeMonth(OrderOpenTime());
     if ( lin_in_1 == TimeMonth(Time[0]) )
      {
      zi_do_1 = zi_do_1 + OrderProfit() ;
    }}}
   if ( OrderSymbol() == Symbol() && OrderType() == 1 && OrderMagicNumber() == magic )
    {
    if ( mu_0 == 2 )
     break;
    if ( mu_0 == 3 )
     {
     lin_in_1 = TimeDay(OrderOpenTime());
     if ( lin_in_1 != TimeDay(Time[0]) )
      break;
     }
    if ( mu_0 == 4 )
     break;
    if ( mu_0 == 5 )
     {
     lin_in_1 = TimeMonth(OrderOpenTime());
     if ( lin_in_1 != TimeMonth(Time[0]) )
      break;
     }
    if ( mu_0 == 0 )
     {
     zi_do_1 = (OrderOpenPrice() - OrderClosePrice()) / z_do_311 + zi_do_1 ;
     }
    if ( mu_0 == 1 )
     {
     zi_do_1 = zi_do_1 + OrderProfit() ;
     }
    if ( mu_0 == 2 )
     {
     lin_in_1 = TimeDay(OrderOpenTime());
     if ( lin_in_1 == TimeDay(Time[0]) )
      {
      zi_do_1 = (OrderOpenPrice() - OrderClosePrice()) / z_do_311 + zi_do_1 ;
     }}
    if ( mu_0 == 3 )
     {
     lin_in_1 = TimeDay(OrderOpenTime());
     if ( lin_in_1 == TimeDay(Time[0]) )
      {
      zi_do_1 = zi_do_1 + OrderProfit() ;
     }}
    if ( mu_0 == 4 )
     {
     lin_in_1 = TimeMonth(OrderOpenTime());
     if ( lin_in_1 == TimeMonth(Time[0]) )
      {
      zi_do_1 = (OrderOpenPrice() - OrderClosePrice()) / z_do_311 + zi_do_1 ;
     }}
    if ( mu_0 == 5 )
     {
     lin_in_1 = TimeMonth(OrderOpenTime());
     if ( lin_in_1 == TimeMonth(Time[0]) )
      {
      zi_do_1 = zi_do_1 + OrderProfit() ;
    }}}
   }
  return(zi_do_1); 
  }
 return(0.0); 
 }
//counthistoprofit
//---------------------  ----------------------------------------

 int consecutive (int mu_0)
 {
 int         zi_in_1;

//----------------------------

 zi_in_1 = 0 ;
 for (z_in_190 = HistoryTotal() ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_HISTORY); 
  if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( mu_0 == 0 )
    {
    if ( OrderProfit()>0.0 )
     break;
    if ( OrderProfit()<0.0 )
     {
     zi_in_1 = zi_in_1 + 1;
    }}
   if ( mu_0 == 1 )
    {
    if ( OrderProfit()<0.0 )
     break;
    if ( OrderProfit()>0.0 )
     {
     zi_in_1 = zi_in_1 + 1;
   }}}
  }
 return(zi_in_1); 
 }
//consecutive
//---------------------  ----------------------------------------

 double global (int mu_0)
 {
 double      zi_do_1;

//----------------------------

 zi_do_1 = 0.0 ;
 zi_do_1 = 0.0 ;
 for (z_in_190 = HistoryTotal() ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_HISTORY); 
  if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( mu_0 == 0 )
    {
    if ( OrderProfit()>0.0 )
     break;
    if ( OrderProfit()<0.0 )
     {
     zi_do_1 = zi_do_1 + OrderProfit() ;
    }}
   if ( mu_0 == 1 )
    {
    if ( OrderProfit()<0.0 )
     break;
    if ( OrderProfit()>0.0 )
     {
     zi_do_1 = zi_do_1 + OrderProfit() ;
   }}}
  }
 return(zi_do_1); 
 }
//global
//---------------------  ----------------------------------------

 void addpositions ()
 {

//----------------------------

 z_bo_182 = true ;
 z_bo_183 = true ;
 if (!(z_bo_94) )  return;
 checkaddpositions(); 
 }
//addpositions
//---------------------  ----------------------------------------

 void checkaddpositions ()
 {

//----------------------------

 if ( count ( 0) > 0 )
  {
  z_bo_182 = false ;
  if ( ( ( z_in_96 == 0 && Close[0]<=z_do_241 - z_do_97 * z_do_311 * MathPow(z_do_98,count ( 0)) ) || ( z_in_96 == 1 && Close[0]>=z_do_97 * z_do_311 * MathPow(z_do_98,count ( 0)) + z_do_241 ) || (( ( z_in_96 == 2 && Close[0]<=z_do_241 - z_do_97 * z_do_311 * MathPow(z_do_98,count ( 0)) ) || Close[0]>=z_do_97 * z_do_311 * MathPow(z_do_98,count ( 0)) + z_do_241 ) && (z_bo_95 == false || ( z_bo_64 == false && z_in_218 == 1 ) || (z_bo_64 && z_in_219 == 2))) ) )
   {
   z_bo_180 = true ;
  }}
 if (!(count ( 1) > 0) )  return;
 z_bo_183 = false ;
 if (!(( ( z_in_96 == 0 && Close[0]>=z_do_97 * z_do_311 * MathPow(z_do_98,count ( 1)) + z_do_242 ) || ( z_in_96 == 1 && Close[0]<=z_do_242 - z_do_97 * z_do_311 * MathPow(z_do_98,count ( 1)) ) || (( ( z_in_96 == 2 && Close[0]>=z_do_97 * z_do_311 * MathPow(z_do_98,count ( 1)) + z_do_242 ) || Close[0]<=z_do_242 - z_do_97 * z_do_311 * MathPow(z_do_98,count ( 1)) ) && (z_bo_95 == false || ( z_bo_64 == false && z_in_219 == 2 ) || (z_bo_64 && z_in_218 == 1))) )) )  return;
 z_bo_181 = true ;
 }
//checkaddpositions
//---------------------  ----------------------------------------

 void addlots ()
 {

//----------------------------

 z_do_227 = lots * MathPow(z_do_24,count ( 0)) ;
 z_do_228 = lots * MathPow(z_do_24,count ( 1)) ;
 }
//addlots
//---------------------  ----------------------------------------

 void lot ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 double     lin_do_3;
 double     lin_do_4;
 double     lin_do_5;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 if ( z_bo_15 && ( z_bo_22 == false || ( !(z_bo_94) && z_do_232>=0.0 ) || (z_bo_22 && z_bo_94 && (z_bo_73 == false || countglobal ( ) == 0)) ) )
  {
  lots = mm ( z_do_16) ;
  }
 z_do_227 = lots ;
 z_do_228 = lots ;
 }
//lot
//---------------------  ----------------------------------------

 void initmm ()
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 if (!(z_bo_15) )  return;
 if ( MarketInfo(Symbol(),23)>=1.0 )
  {
  z_in_195 = 100000 ;
  }
 if ( MarketInfo(Symbol(),23)<1.0 )
  {
  z_in_195 = 10000 ;
  }
 if ( MarketInfo(Symbol(),23)<0.1 )
  {
  z_in_195 = 1000 ;
  }
 if (!(z_bo_73) )  return;
 lots = mm ( z_do_16) ;
 }
//initmm
//---------------------  ----------------------------------------

 double mm (double mu_0)
 {
 double      zi_do_1;

//----------------------------
 double     lin_do_1;

 zi_do_1 = 0.0 ;
 lin_do_1 = 0.0;
 zi_do_1 = 0.0 ;
 if ( z_do_70>0.0 )
  {
  zi_do_1 = mu_0 / 100.0 * AccountBalance() / (z_do_70 * z_do_311 / MarketInfo(Symbol(),17) * MarketInfo(Symbol(),16)) ;
  }
 else
  {
  zi_do_1 = NormalizeDouble(AccountBalance() / z_in_195 * 0.01 * mu_0,z_in_19) ;
  }
 return(zi_do_1); 
 }
//mm
//---------------------  ----------------------------------------

 void martingale ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 int        lin_in_4;
 int        lin_in_5;
 int        lin_in_6;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_in_4 = 0;
 lin_in_5 = 0;
 lin_in_6 = 0;
 if (!(z_bo_22) )  return;
 if ( !(z_bo_94) )
  {
  checkmartingale(); 
  }
 if (!(z_bo_94) )  return;
 addlots ( ); 
 }
//martingale
//---------------------  ----------------------------------------

 void checkmartingale ()
 {

//----------------------------
 double     lin_do_1;
 int        lin_in_2;
 double     lin_do_3;
 double     lin_do_4;
 double     lin_do_5;
 int        lin_in_6;
 double     lin_do_7;
 double     lin_do_8;
 int        lin_in_9;
 int        lin_in_10;
 int        lin_in_11;
 double     lin_do_12;
 int        lin_in_13;
 int        lin_in_14;
 int        lin_in_15;
 double     lin_do_16;

 lin_do_1 = 0.0;
 lin_in_2 = 0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 lin_in_6 = 0;
 lin_do_7 = 0.0;
 lin_do_8 = 0.0;
 lin_in_9 = 0;
 lin_in_10 = 0;
 lin_in_11 = 0;
 lin_do_12 = 0.0;
 lin_in_13 = 0;
 lin_in_14 = 0;
 lin_in_15 = 0;
 lin_do_16 = 0.0;
 z_in_198 = 0 ;
 z_do_249 = 0.0 ;
 z_do_248 = 0.0 ;
 z_do_231 = history ( 0) ;
 z_do_232 = history ( 1) ;
 z_do_233 = 0.0 ;
 if ( z_in_23 == 0 )
  {
  if ( z_do_232<0.0 )
   {
   z_do_233 = z_do_231 * z_do_24 ;
   if ( z_in_32 <  500 )
    {
    z_in_211 = consecutive ( 0) ;
    if ( z_in_211 >= z_in_32 )
     {
     z_do_233 = lots ;
    }}
   if ( z_do_25!=0.0 )
    {
    z_do_249 = global ( 0) ;
    z_in_198 = 1 ;
    z_do_248 = NormalizeDouble(z_do_249 * 0.01 * z_do_25,2) ;
   }}
  else
   {
   z_do_233 = lots ;
  }}
 if ( z_in_23 == 1 )
  {
  if ( z_do_232>0.0 )
   {
   z_do_233 = z_do_231 * z_do_24 ;
   if ( z_in_32 <  500 )
    {
    z_in_212 = consecutive ( 1) ;
    if ( z_in_212 >= z_in_32 )
     {
     z_do_233 = lots ;
   }}}
  else
   {
   z_do_233 = lots ;
   if ( z_do_25!=0.0 )
    {
    z_do_249 = global ( 0) ;
    z_in_198 = 1 ;
    z_do_248 = NormalizeDouble(z_do_249 * 0.01 * z_do_25,2) ;
  }}}
 z_do_227 = z_do_233 ;
 z_do_228 = z_do_233 ;
 }
//checkmartingale
//---------------------  ----------------------------------------

 void initfibo ()
 {

//----------------------------

 if (!(z_bo_26) )  return;
 z_do_240[0] = 1.0;
 z_do_240[1] = 1.0;
 z_do_240[2] = 2.0;
 z_do_240[3] = 3.0;
 z_do_240[4] = 5.0;
 z_do_240[5] = 8.0;
 z_do_240[6] = 13.0;
 z_do_240[7] = 21.0;
 z_do_240[8] = 34.0;
 z_do_240[9] = 55.0;
 z_do_240[10] = 89.0;
 z_do_240[11] = 144.0;
 z_do_240[12] = 233.0;
 z_do_240[13] = 377.0;
 z_do_240[14] = 610.0;
 z_do_240[15] = 987.0;
 z_do_240[16] = 1597.0;
 z_do_240[17] = 2584.0;
 z_do_240[18] = 4181.0;
 z_do_240[19] = 6765.0;
 z_do_240[20] = 10946.0;
 }
//initfibo
//---------------------  ----------------------------------------

 void fibomartingale ()
 {

//----------------------------

 if (!(z_bo_26) )  return;
 checkfibomartingale(); 
 }
//fibomartingale
//---------------------  ----------------------------------------

 void checkfibomartingale ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 int        lin_in_4;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_in_4 = 0;
 if (!(HistoryTotal() > 0) )  return;
 if ( z_in_27 == 0 )
  {
  z_in_211 = consecutive ( 0) ;
  z_do_227 = lots * z_do_240[z_in_211] ;
  z_do_228 = lots * z_do_240[z_in_211] ;
  if ( z_in_32 <  500 && z_in_211 >= z_in_32 )
   {
   z_do_227 = lots ;
   z_do_228 = lots ;
  }}
 if (!(z_in_27 == 1) )  return;
 z_in_212 = consecutive ( 1) ;
 z_do_227 = lots * z_do_240[z_in_212] ;
 z_do_228 = lots * z_do_240[z_in_212] ;
 if (!(z_in_32 <  500) )  return;
 if (!(z_in_212 >= z_in_32) )  return;
 z_do_227 = lots ;
 z_do_228 = lots ;
 }
//checkfibomartingale
//---------------------  ----------------------------------------

 void alembert ()
 {

//----------------------------

 if (!(z_bo_28) )  return;
 checkalembert(); 
 }
//alembert
//---------------------  ----------------------------------------

 void checkalembert ()
 {

//----------------------------

 z_do_231 = history ( 0) ;
 z_do_261 = history ( 1) ;
 if ( z_do_261>0.0 )
  {
  if ( z_in_29 == 0 )
   {
   z_do_227 = z_do_231 - lots * z_do_31 ;
   z_do_228 = z_do_227 ;
   if ( z_in_32 <  500 )
    {
    z_in_211 = consecutive ( 0) ;
    if ( z_in_211 >= z_in_32 )
     {
     z_do_227 = lots ;
     z_do_228 = lots ;
   }}}
  else
   {
   z_do_227 = lots * z_do_30 + z_do_231 ;
   z_do_228 = z_do_227 ;
  }}
 if (!(z_do_261<0.0) )  return;
 if ( z_in_29 == 0 )
  {
  z_do_227 = lots * z_do_30 + z_do_231 ;
  z_do_228 = z_do_227 ;
  if (!(z_in_32 <  500) )  return;
  z_in_212 = consecutive ( 1) ;
  if (!(z_in_212 >= z_in_32) )  return;
  z_do_227 = lots ;
  z_do_228 = lots ;
  return;
  }
 z_do_227 = z_do_231 - lots * z_do_31 ;
 z_do_228 = z_do_227 ;
 }
//checkalembert
//---------------------  ----------------------------------------

 void recovery ()
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;
 double     lin_do_4;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 if (!(z_bo_20) )  return;
 z_do_227 = recoverylots ( lots) ;
 z_do_228 = recoverylots ( lots) ;
 }
//recovery
//---------------------  ----------------------------------------

 double recoverylots (double mu_0)
 {

//----------------------------

 z_do_259 = counthistoprofit(1) ;
 if ( z_do_258<=z_do_259 )
  {
  z_do_258 = z_do_259 ;
  }
 if ( z_do_258>z_do_259 )
  {
  return(z_do_21 * mu_0); 
  }
 return(mu_0); 
 }
//recoverylots
//---------------------  ----------------------------------------

 void close (int mu_0)
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( ( mu_0 == 3 || (mu_0 == 0 && OrderType() == 0) ) && OrderSymbol() == Symbol() && OrderMagicNumber() == magic && ( z_in_63 == 0 || (z_in_63 > 0 && OrderClosePrice() - OrderOpenPrice()<( -(z_in_63)) * z_do_311) ) )
   {
   RefreshRates(); 
   OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,z_do_310),slippage * z_do_312,0xFFFFFFFF); 
   }
  if ( ( mu_0 == 3 || (mu_0 == 1 && OrderType() == 1) ) && OrderSymbol() == Symbol() && OrderMagicNumber() == magic && ( z_in_63 == 0 || (z_in_63 > 0 && OrderOpenPrice() - OrderClosePrice()<( -(z_in_63)) * z_do_311) ) )
   {
   RefreshRates(); 
   OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,z_do_310),slippage * z_do_312,0xFFFFFFFF); 
   }
  }
 }
//close
//---------------------  ----------------------------------------

 void hideclose ()
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( OrderType() == 0 && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && z_bo_68 && z_do_70>0.0 && NormalizeDouble(OrderClosePrice() - OrderOpenPrice(),z_do_310)<=( -(z_do_70)) * z_do_311 - MarketInfo(Symbol(),13) * z_do_311 ) || (z_bo_69 && z_do_71>0.0 && NormalizeDouble(OrderClosePrice() - OrderOpenPrice(),z_do_310)>=z_do_71 * z_do_311) ) )
   {
   RefreshRates(); 
   OrderClose(OrderTicket(),OrderLots(),Bid,slippage * z_do_312,0xFFFFFFFF); 
   }
  if ( OrderType() == 1 && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && z_bo_68 && z_do_70>0.0 && NormalizeDouble(OrderOpenPrice() - OrderClosePrice(),z_do_310)<=( -(z_do_70)) * z_do_311 - MarketInfo(Symbol(),13) * z_do_311 ) || (z_bo_69 && z_do_71>0.0 && NormalizeDouble(OrderOpenPrice() - OrderClosePrice(),z_do_310)>=z_do_71 * z_do_311) ) )
   {
   RefreshRates(); 
   OrderClose(OrderTicket(),OrderLots(),Ask,slippage * z_do_312,0xFFFFFFFF); 
   }
  }
 }
//hideclose
//---------------------  ----------------------------------------

 void partialtp (int mu_0, int mu_1, double mu_2, double mu_3)
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;
 double     lin_do_4;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( mu_2<z_do_17 )
   {
   mu_2 = z_do_17 ;
   }
  if ( ( mu_0 == 3 || (mu_0 == 0 && OrderType() == 0) ) && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderLots()>=mu_2 && mu_1 == 0 && OrderClosePrice() - OrderOpenPrice()>=mu_3 * z_do_311 ) || mu_1 == 1 ) )
   {
   RefreshRates(); 
   OrderClose(OrderTicket(),NormalizeDouble(mu_2,z_in_19),NormalizeDouble(Bid,z_do_310),slippage * z_do_312,0xFFFFFFFF); 
   }
  if ( ( mu_0 == 3 || (mu_0 == 1 && OrderType() == 1) ) && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderLots()>=mu_2 && mu_1 == 0 && OrderOpenPrice() - OrderClosePrice()>=mu_3 * z_do_311 ) || mu_1 == 1 ) )
   {
   RefreshRates(); 
   OrderClose(OrderTicket(),NormalizeDouble(mu_2,z_in_19),NormalizeDouble(Ask,z_do_310),slippage * z_do_312,0xFFFFFFFF); 
   }
  }
 }
//partialtp
//---------------------  ----------------------------------------

 void partialtp2 (int mu_0, int mu_1, double mu_2, double mu_3, double mu_4)
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;
 double     lin_do_4;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( mu_3<z_do_17 )
   {
   mu_3 = z_do_17 ;
   }
  if ( ( mu_0 == 3 || (mu_0 == 0 && OrderType() == 0) ) && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderLots()==NormalizeDouble(mu_2,z_in_19) && OrderLots()>=z_do_17 && mu_1 == 0 && OrderClosePrice() - OrderOpenPrice()>=mu_4 * z_do_311 ) || mu_1 == 1 ) )
   {
   RefreshRates(); 
   OrderClose(OrderTicket(),NormalizeDouble(mu_3,z_in_19),NormalizeDouble(Bid,z_do_310),slippage * z_do_312,0xFFFFFFFF); 
   }
  if ( ( mu_0 == 3 || (mu_0 == 1 && OrderType() == 1) ) && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderLots()==NormalizeDouble(mu_2,z_in_19) && OrderLots()>=z_do_17 && mu_1 == 0 && OrderOpenPrice() - OrderClosePrice()>=mu_4 * z_do_311 ) || mu_1 == 1 ) )
   {
   RefreshRates(); 
   OrderClose(OrderTicket(),NormalizeDouble(mu_3,z_in_19),NormalizeDouble(Ask,z_do_310),slippage * z_do_312,0xFFFFFFFF); 
   }
  }
 }
//partialtp2
//---------------------  ----------------------------------------

 void closetime (int mu_0, double mu_1, double mu_2, double mu_3)
 {

//----------------------------

 z_do_245 = 0.0 ;
 z_in_210 = 0 ;
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( OrderType() == 0 && OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   z_do_245 = NormalizeDouble(OrderClosePrice() - OrderOpenPrice(),z_do_310) ;
   z_in_210 = TimeCurrent() - OrderOpenTime() ;
   if ( ( ( mu_0 == 0 && z_do_245>=mu_1 * z_do_311 && z_in_210>mu_2 * 60.0 && z_in_210<mu_3 * 60.0 ) || (mu_0 == 1 && z_do_245>=mu_1 * z_do_311 && z_in_210>mu_2 * 60.0) ) )
    {
    RefreshRates(); 
    OrderClose(OrderTicket(),OrderLots(),Bid,slippage * z_do_312,0xFFFFFFFF); 
   }}
  if ( OrderType() == 1 && OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   z_do_245 = NormalizeDouble(OrderOpenPrice() - OrderClosePrice(),z_do_310) ;
   z_in_210 = TimeCurrent() - OrderOpenTime() ;
   if ( ( ( mu_0 == 0 && z_do_245>=mu_1 * z_do_311 && z_in_210>mu_2 * 60.0 && z_in_210<mu_3 * 60.0 ) || (mu_0 == 1 && z_do_245>=mu_1 * z_do_311 && z_in_210>mu_2 * 60.0) ) )
    {
    RefreshRates(); 
    OrderClose(OrderTicket(),OrderLots(),Ask,slippage * z_do_312,0xFFFFFFFF); 
   }}
  }
 }
//closetime
//---------------------  ----------------------------------------

 void delete1 (int mu_0)
 {

//----------------------------

 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( mu_0  !=  6 && mu_0  !=  7 && mu_0  !=  8 && OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderType() == mu_0 )
   {
   OrderDelete(OrderTicket(),0xFFFFFFFF); 
   }
  if ( mu_0 == 6 && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderType() == 4 ) || OrderType() == 5 || OrderType() == 2 || OrderType() == 3 ) )
   {
   OrderDelete(OrderTicket(),0xFFFFFFFF); 
   }
  if ( mu_0 == 7 && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderType() == 4 ) || OrderType() == 2 ) )
   {
   OrderDelete(OrderTicket(),0xFFFFFFFF); 
   }
  if ( mu_0 == 8 && ( ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderType() == 5 ) || OrderType() == 3 ) )
   {
   OrderDelete(OrderTicket(),0xFFFFFFFF); 
   }
  }
 }
//delete1
//---------------------  ----------------------------------------

 void closeall ()
 {

//----------------------------

 close(0); 
 close(1); 
 delete1 ( 7); 
 delete1 ( 8); 
 }
//closeall
//---------------------  ----------------------------------------

 void stop ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;
 int        lin_in_3;
 int        lin_in_4;
 int        lin_in_5;
 int        lin_in_6;
 int        lin_in_7;
 int        lin_in_8;

 lin_in_1 = 0;
 lin_in_2 = 0;
 lin_in_3 = 0;
 lin_in_4 = 0;
 lin_in_5 = 0;
 lin_in_6 = 0;
 lin_in_7 = 0;
 lin_in_8 = 0;
 if ( z_bo_61 )
  {
  if ( z_bo_180 )
   {
   if ( z_bo_72 )
    {
    partialtp(1,1,lots * z_do_75 * 0.01,0.0); 
    }
   else
    {
    close(1); 
   }}
  if ( z_bo_181 )
   {
   if ( z_bo_72 )
    {
    partialtp(0,1,lots * z_do_75 * 0.01,0.0); 
    }
   else
    {
    close(0); 
   }}
  if ( z_bo_62 )
   {
   if ( z_st_270 == "LONG" )
    {
    close(0); 
    }
   if ( z_st_270 == "SHORT" )
    {
    close(1); 
   }}
  if ( z_bo_72 == false && z_in_214 > z_in_215 && z_in_215 != 0 )
   {
   close(1); 
   }
  if ( z_bo_72 == false && z_in_215 > z_in_214 && z_in_214 != 0 )
   {
   close(0); 
  }}
 if ( ( z_bo_69 || z_bo_68 ) )
  {
  hideclose(); 
  }
 if ( z_bo_57 )
  {
  if ( count ( 1) > 0 )
   {
   delete1 ( 7); 
   }
  if ( count ( 0) > 0 )
   {
   delete1 ( 8); 
  }}
 if ( z_bo_73 )
  {
  partialtp2(3,0,z_do_227,z_do_227 * z_do_75 * 0.01,z_do_74); 
  z_do_260 = z_do_227 - z_do_227 * z_do_75 * 0.01 ;
  if ( z_do_227 * z_do_75 * 0.01<z_do_17 )
   {
   z_do_260 = z_do_227 - z_do_17 ;
   }
  partialtp2(3,0,z_do_260,z_do_227 * z_do_77 * 0.01,z_do_76); 
  }
 if ( z_in_198 == 1 && z_do_237>= -(z_do_248) )
  {
  close(3); 
  }
 if ( z_bo_161 )
  {
  closetime(0,z_in_163,z_in_162,z_in_164); 
  closetime(0,z_in_165,z_in_164,z_in_166); 
  closetime(0,z_in_167,z_in_166,z_in_168); 
  closetime(0,z_in_169,z_in_168,z_in_170); 
  closetime(0,z_in_171,z_in_170,z_in_172); 
  closetime(0,z_in_173,z_in_172,z_in_174); 
  closetime(1,z_in_175,z_in_174,0.0); 
  }
 if ( z_in_220 == 1 )
  {
  if ( z_bo_64 )
   {
   close(1); 
   }
  else
   {
   close(0); 
  }}
 if (!(z_in_221 == 2) )  return;
 if ( z_bo_64 )
  {
  close(0); 
  return;
  }
 close(1); 
 }
//stop
//---------------------  ----------------------------------------

 void movetrailingstop (int mu_0, double mu_1, double mu_2)
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;
 double     lin_do_4;
 double     lin_do_5;
 double     lin_do_6;
 double     lin_do_7;
 double     lin_do_8;
 double     lin_do_9;
 double     lin_do_10;
 double     lin_do_11;
 double     lin_do_12;
 double     lin_do_13;
 double     lin_do_14;
 double     lin_do_15;
 double     lin_do_16;
 double     lin_do_51;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 lin_do_6 = 0.0;
 lin_do_7 = 0.0;
 lin_do_8 = 0.0;
 lin_do_9 = 0.0;
 lin_do_10 = 0.0;
 lin_do_11 = 0.0;
 lin_do_12 = 0.0;
 lin_do_13 = 0.0;
 lin_do_14 = 0.0;
 lin_do_15 = 0.0;
 lin_do_16 = 0.0;
 RefreshRates(); 
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( mu_0 == 0 && OrderType() <= 1 && OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( OrderType() == 0 )
    {
    if ( NormalizeDouble(Ask,z_do_310)>NormalizeDouble(mu_1 * z_do_311 + OrderOpenPrice(),z_do_310) && NormalizeDouble(OrderStopLoss(),z_do_310)<NormalizeDouble(Bid - (mu_2 + z_do_82) * z_do_311,z_do_310) )
     {
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid - mu_2 * z_do_311,z_do_310),OrderTakeProfit(),0,Blue); 
     return;
    }}
   else
    {
    if ( ( ( NormalizeDouble(Bid,z_do_310)<NormalizeDouble(OrderOpenPrice() - mu_1 * z_do_311,z_do_310) && NormalizeDouble(OrderStopLoss(),z_do_310)>NormalizeDouble((mu_2 + z_do_82) * z_do_311 + Ask,z_do_310) ) || OrderStopLoss()==0.0 ) )
     {
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(mu_2 * z_do_311 + Ask,z_do_310),OrderTakeProfit(),0,Red); 
     return;
   }}}
  if ( mu_0 == 1 && OrderType() <= 1 && OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( OrderType() == 0 && OrderStopLoss()==0.0 && NormalizeDouble(Ask,z_do_310)>=NormalizeDouble(mu_1 * z_do_311 + OrderOpenPrice(),z_do_310) )
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(mu_2 * z_do_311 + OrderOpenPrice(),z_do_310),OrderTakeProfit(),0,Blue); 
    return;
    }
   if ( OrderType() == 0 && OrderStopLoss()!=0.0 )
    {
    lin_do_51 = mu_1 * z_do_311;
    if ( NormalizeDouble(Ask,z_do_310)>=NormalizeDouble(mu_1 * z_do_311 + OrderOpenPrice(),z_do_310) && NormalizeDouble(Ask,z_do_310)>=NormalizeDouble(OrderStopLoss() + lin_do_51,z_do_310) )
     {
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(mu_2 * z_do_311 + OrderStopLoss(),z_do_310),OrderTakeProfit(),0,Blue); 
     return;
    }}
   if ( OrderType() == 1 && OrderStopLoss()==0.0 && NormalizeDouble(Bid,z_do_310)<=NormalizeDouble(OrderOpenPrice() - mu_1 * z_do_311,z_do_310) )
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice() - mu_2 * z_do_311,z_do_310),OrderTakeProfit(),0,Red); 
    return;
    }
   if ( OrderType() == 1 && OrderStopLoss()!=0.0 && NormalizeDouble(Bid,z_do_310)<=NormalizeDouble(OrderOpenPrice() - mu_1 * z_do_311,z_do_310) && NormalizeDouble(Bid,z_do_310)<=NormalizeDouble(OrderStopLoss() - mu_1 * z_do_311,z_do_310) )
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderStopLoss() - mu_2 * z_do_311,z_do_310),OrderTakeProfit(),0,Red); 
    return;
   }}
  }
 }
//movetrailingstop
//---------------------  ----------------------------------------

 void movetrailingstop2 (int mu_0, double mu_1)
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;
 double     lin_do_4;
 double     lin_do_5;
 double     lin_do_6;
 double     lin_do_7;
 double     lin_do_8;
 double     lin_do_9;
 double     lin_do_10;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 lin_do_6 = 0.0;
 lin_do_7 = 0.0;
 lin_do_8 = 0.0;
 lin_do_9 = 0.0;
 lin_do_10 = 0.0;
 RefreshRates(); 
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( OrderType() <= 1 && OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( OrderType() == mu_0 )
    {
    if ( NormalizeDouble(OrderStopLoss(),z_do_310)==0.0 && NormalizeDouble(Bid,z_do_310)>NormalizeDouble((MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13)) * z_do_311 + mu_1,z_do_310) )
     {
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(mu_1,z_do_310),OrderTakeProfit(),0,Blue); 
     return;
     }
    if ( NormalizeDouble(OrderStopLoss(),z_do_310)>0.0 && NormalizeDouble(Bid,z_do_310)>NormalizeDouble((MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13)) * z_do_311 + mu_1,z_do_310) && NormalizeDouble(mu_1,z_do_310)>NormalizeDouble(OrderStopLoss(),z_do_310) )
     {
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(mu_1,z_do_310),OrderTakeProfit(),0,Blue); 
     return;
    }}
   if ( OrderType() == mu_0 )
    {
    if ( NormalizeDouble(OrderStopLoss(),z_do_310)==0.0 && NormalizeDouble(Ask,z_do_310)<NormalizeDouble(mu_1 - ((MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13)) * z_do_311),z_do_310) )
     {
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(mu_1,z_do_310),OrderTakeProfit(),0,Red); 
     return;
     }
    if ( NormalizeDouble(OrderStopLoss(),z_do_310)>0.0 && NormalizeDouble(Ask,z_do_310)<NormalizeDouble(mu_1 - ((MarketInfo(Symbol(),14) + MarketInfo(Symbol(),13)) * z_do_311),z_do_310) && NormalizeDouble(mu_1,z_do_310)<NormalizeDouble(OrderStopLoss(),z_do_310) )
     {
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(mu_1,z_do_310),OrderTakeProfit(),0,Red); 
     return;
   }}}
  }
 }
//movetrailingstop2
//---------------------  ----------------------------------------

 void movetrailingprofit (double mu_0, double mu_1)
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;
 double     lin_do_4;
 double     lin_do_5;
 double     lin_do_6;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 lin_do_6 = 0.0;
 RefreshRates(); 
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  if ( OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES) && OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( OrderType() == 0 && NormalizeDouble(Bid - OrderOpenPrice(),z_do_310)<=NormalizeDouble(( -(mu_0)) * z_do_311,z_do_310) && ( NormalizeDouble(OrderTakeProfit(),z_do_310)>NormalizeDouble((mu_1 + z_do_82) * z_do_311 + Bid,z_do_310) || NormalizeDouble(OrderTakeProfit(),z_do_310)==0.0 ) )
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(mu_1 * z_do_311 + Bid,z_do_310),0,Blue); 
    return;
    }
   if ( OrderType() == 1 && NormalizeDouble(OrderOpenPrice() - Ask,z_do_310)<=NormalizeDouble(( -(mu_0)) * z_do_311,z_do_310) && NormalizeDouble(OrderTakeProfit(),z_do_310)<NormalizeDouble(Ask - (mu_1 + z_do_82) * z_do_311,z_do_310) )
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(Ask - mu_1 * z_do_311,z_do_310),0,Red); 
    return;
   }}
  }
 }
//movetrailingprofit
//---------------------  ----------------------------------------

 void movebreakeven (double mu_0, double mu_1)
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;
 double     lin_do_4;
 double     lin_do_5;
 double     lin_do_6;
 double     lin_do_18;
 double     lin_do_21;
 double     lin_do_33;
 double     lin_do_34;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 lin_do_6 = 0.0;
 RefreshRates(); 
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( OrderType() <= 1 && OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( OrderType() == 0 )
    {
    if ( NormalizeDouble(Bid - OrderOpenPrice(),z_do_310)>=NormalizeDouble(mu_0 * z_do_311,z_do_310) && ( NormalizeDouble(OrderStopLoss() - OrderOpenPrice(),z_do_310)<NormalizeDouble(mu_1 * z_do_311,z_do_310) || OrderStopLoss()==0.0 ) )
     {
     lin_do_18 = OrderTakeProfit();
     lin_do_3 = NormalizeDouble(mu_1 * z_do_311 + OrderOpenPrice(),z_do_310);
     lin_do_21 = OrderOpenPrice();
     OrderModify(OrderTicket(),lin_do_21,lin_do_3,lin_do_18,0,Blue); 
     return;
    }}
   else
    {
    if ( NormalizeDouble(OrderOpenPrice() - Ask,z_do_310)>=NormalizeDouble(mu_0 * z_do_311,z_do_310) && ( NormalizeDouble(OrderOpenPrice() - OrderStopLoss(),z_do_310)<NormalizeDouble(mu_1 * z_do_311,z_do_310) || OrderStopLoss()==0.0 ) )
     {
     lin_do_33 = OrderTakeProfit();
     lin_do_34 = OrderOpenPrice() - mu_1 * z_do_311;
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(lin_do_34,z_do_310),lin_do_33,0,Red); 
     return;
   }}}
  }
 }
//movebreakeven
//---------------------  ----------------------------------------

 void ecnmodify (double mu_0, double mu_1)
 {

//----------------------------
 double     lin_do_1;
 double     lin_do_2;
 double     lin_do_3;
 double     lin_do_4;
 double     lin_do_5;
 double     lin_do_6;
 double     lin_do_7;
 double     lin_do_8;
 double     lin_do_46;

 lin_do_1 = 0.0;
 lin_do_2 = 0.0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 lin_do_5 = 0.0;
 lin_do_6 = 0.0;
 lin_do_7 = 0.0;
 lin_do_8 = 0.0;
 if (!(OrdersTotal() > 0) )  return;
 for (z_in_190=OrdersTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_TRADES); 
  if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   if ( OrderType() == 0 )
    {
    if ( OrderStopLoss()==0.0 && mu_0>0.0 && mu_1==0.0 )
     {
     RefreshRates(); 
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - mu_0 * z_do_311,z_do_310),OrderTakeProfit(),0,Red); 
     return;
     }
    if ( OrderTakeProfit()==0.0 && mu_0==0.0 && mu_1>0.0 )
     {
     RefreshRates(); 
     OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(mu_1 * z_do_311 + Ask,z_do_310),0,Red); 
     return;
     }
    if ( OrderTakeProfit()==0.0 && OrderStopLoss()==0.0 && mu_0>0.0 && mu_1>0.0 )
     {
     RefreshRates(); 
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - mu_0 * z_do_311,z_do_310),NormalizeDouble(mu_1 * z_do_311 + Ask,z_do_310),0,Red); 
     return;
    }}
   if ( OrderType() == 1 )
    {
    if ( OrderStopLoss()==0.0 && mu_0>0.0 && mu_1==0.0 )
     {
     RefreshRates(); 
     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(mu_0 * z_do_311 + Bid,z_do_310),OrderTakeProfit(),0,Red); 
     return;
     }
    if ( OrderTakeProfit()==0.0 && mu_0==0.0 && mu_1>0.0 )
     {
     RefreshRates(); 
     OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(Bid - mu_1 * z_do_311,z_do_310),0,Red); 
     return;
     }
    if ( OrderTakeProfit()==0.0 && OrderStopLoss()==0.0 && mu_0>0.0 && mu_1>0.0 )
     {
     RefreshRates(); 
     lin_do_8 = NormalizeDouble(Bid - mu_1 * z_do_311,z_do_310);
     lin_do_7 = NormalizeDouble(mu_0 * z_do_311 + Bid,z_do_310);
     lin_do_46 = OrderOpenPrice();
     OrderModify(OrderTicket(),lin_do_46,lin_do_7,lin_do_8,0,Red); 
     return;
   }}}
  }
 }
//ecnmodify
//---------------------  ----------------------------------------

 void modify ()
 {

//----------------------------

 if ( z_bo_106 )
  {
  movetrailingstop2(0,Low[z_in_125] - z_in_107 * z_do_311); 
  movetrailingstop2(1,z_in_107 * z_do_311 + High[z_in_125]); 
  }
 if ( z_do_83>0.0 )
  {
  movebreakeven(z_do_83,z_do_84); 
  }
 if ( z_do_80>0.0 )
  {
  movetrailingstop(z_in_78,z_do_79,z_do_80); 
  }
 if ( z_do_93>0.0 )
  {
  movetrailingstop(0,z_do_93,z_do_93); 
  }
 if ( z_do_81>0.0 )
  {
  movetrailingprofit(z_do_79,z_do_81); 
  }
 if (!(z_bo_53) )  return;
 ecnmodify(z_do_70,z_do_71); 
 }
//modify
//---------------------  ----------------------------------------

 void basket ()
 {

//----------------------------

 if (!(( z_bo_34 || z_bo_37 || z_bo_40 || z_bo_43 || z_bo_46 || z_bo_49 )) )  return;
 checkbasket(); 
 }
//basket
//---------------------  ----------------------------------------

 void checkbasket ()
 {

//----------------------------
 double     lin_do_1;
 int        lin_in_2;
 double     lin_do_3;
 double     lin_do_4;
 int        lin_in_5;
 double     lin_do_6;
 double     lin_do_7;
 int        lin_in_8;
 double     lin_do_9;
 double     lin_do_10;
 int        lin_in_11;
 double     lin_do_12;
 double     lin_do_13;
 int        lin_in_14;
 double     lin_do_15;
 double     lin_do_16;
 int        lin_in_17;
 double     lin_do_18;
 double     lin_do_19;
 int        lin_in_20;
 double     lin_do_21;
 double     lin_do_22;
 int        lin_in_23;
 double     lin_do_24;
 double     lin_do_25;
 int        lin_in_26;
 double     lin_do_27;
 double     lin_do_28;
 int        lin_in_29;
 double     lin_do_30;
 double     lin_do_31;
 int        lin_in_32;
 double     lin_do_33;
 double     lin_do_34;
 int        lin_in_35;
 double     lin_do_36;
 double     lin_do_37;
 int        lin_in_38;
 double     lin_do_39;
 double     lin_do_40;
 int        lin_in_41;
 double     lin_do_42;
 double     lin_do_43;
 int        lin_in_44;
 double     lin_do_45;

 lin_do_1 = 0.0;
 lin_in_2 = 0;
 lin_do_3 = 0.0;
 lin_do_4 = 0.0;
 lin_in_5 = 0;
 lin_do_6 = 0.0;
 lin_do_7 = 0.0;
 lin_in_8 = 0;
 lin_do_9 = 0.0;
 lin_do_10 = 0.0;
 lin_in_11 = 0;
 lin_do_12 = 0.0;
 lin_do_13 = 0.0;
 lin_in_14 = 0;
 lin_do_15 = 0.0;
 lin_do_16 = 0.0;
 lin_in_17 = 0;
 lin_do_18 = 0.0;
 lin_do_19 = 0.0;
 lin_in_20 = 0;
 lin_do_21 = 0.0;
 lin_do_22 = 0.0;
 lin_in_23 = 0;
 lin_do_24 = 0.0;
 lin_do_25 = 0.0;
 lin_in_26 = 0;
 lin_do_27 = 0.0;
 lin_do_28 = 0.0;
 lin_in_29 = 0;
 lin_do_30 = 0.0;
 lin_do_31 = 0.0;
 lin_in_32 = 0;
 lin_do_33 = 0.0;
 lin_do_34 = 0.0;
 lin_in_35 = 0;
 lin_do_36 = 0.0;
 lin_do_37 = 0.0;
 lin_in_38 = 0;
 lin_do_39 = 0.0;
 lin_do_40 = 0.0;
 lin_in_41 = 0;
 lin_do_42 = 0.0;
 lin_do_43 = 0.0;
 lin_in_44 = 0;
 lin_do_45 = 0.0;
 if ( z_bo_34 )
  {
  if ( z_st_288 == "CLOSE" && countall(1) == 0 )
   {
   z_st_288 = "" ;
   }
  if ( ( countprofit ( 1)>=NormalizeDouble(z_do_35 * 0.01 * AccountBalance(),2) || countprofit ( 1)<= -(NormalizeDouble(z_do_36 * 0.01 * AccountBalance(),2)) ) )
   {
   z_st_288 = "CLOSE" ;
   }
  if ( z_st_288 == "CLOSE" )
   {
   closeall(); 
  }}
 if ( z_bo_37 )
  {
  if ( z_st_285 == "CLOSE" && countall(1) == 0 )
   {
   z_st_285 = "" ;
   }
  if ( ( countprofit ( 0)>=z_do_38 || countprofit ( 0)<= -(z_do_39) ) )
   {
   z_st_285 = "CLOSE" ;
   }
  if ( z_st_285 == "CLOSE" )
   {
   closeall(); 
  }}
 if ( z_bo_40 )
  {
  if ( z_st_286 == "CLOSE" && countall(1) == 0 )
   {
   z_st_286 = "" ;
   }
  if ( ( countprofit ( 1)>=z_do_41 || countprofit ( 1)<= -(z_do_42) ) )
   {
   z_st_286 = "CLOSE" ;
   }
  if ( z_st_286 == "CLOSE" )
   {
   closeall(); 
  }}
 if ( z_bo_43 )
  {
  if ( countall(1) == 0 )
   {
   if ( z_st_289 == "CLOSE" )
    {
    z_st_289 = "" ;
    }
   z_do_256 = 0.0 ;
   z_do_257 = 0.0 ;
   }
  if ( countall(1)==0 != 0 && countprofit ( 1)>=z_do_256 + NormalizeDouble(z_do_44 * 0.01 * AccountBalance(),2) )
   {
   z_do_256 = countprofit ( 1) ;
   z_do_257 = z_do_256 - (z_do_44 - z_do_45) * z_do_256 * 0.01 ;
   }
  if ( countprofit ( 1)<=z_do_257 && z_do_257!=0.0 )
   {
   z_st_289 = "CLOSE" ;
   }
  if ( z_st_289 == "CLOSE" )
   {
   closeall(); 
  }}
 if ( z_bo_46 )
  {
  if ( z_st_287 == "CLOSE" && countall(1) == 0 )
   {
   z_st_287 = "" ;
   }
  if ( countall(1) == 0 )
   {
   z_do_252 = 0.0 ;
   z_do_253 = 0.0 ;
   }
  if ( countall(1) != 0 && countprofit ( 0)>=z_do_252 + z_do_47 )
   {
   z_do_252 = countprofit ( 0) ;
   z_do_253 = z_do_252 - (z_do_47 - z_do_48) ;
   }
  if ( countprofit ( 0)<=z_do_253 && z_do_253!=0.0 )
   {
   z_st_287 = "CLOSE" ;
   }
  if ( z_st_287 == "CLOSE" )
   {
   closeall(); 
  }}
 if (!(z_bo_49) )  return;
 if ( z_st_290 == "CLOSE" && countall(1) == 0 )
  {
  z_st_290 = "" ;
  }
 if ( countall(1) == 0 )
  {
  z_do_255 = 0.0 ;
  z_do_254 = 0.0 ;
  }
 if ( countall(1) != 0 && countprofit ( 1)>=z_do_255 + z_do_50 )
  {
  z_do_255 = countprofit ( 1) ;
  z_do_254 = z_do_255 - (z_do_50 - z_do_51) ;
  }
 if ( countprofit ( 0)<=z_do_254 && z_do_254!=0.0 )
  {
  z_st_290 = "CLOSE" ;
  }
 if (!(z_st_290 == "CLOSE") )  return;
 closeall(); 
 }
//checkbasket
//---------------------  ----------------------------------------

 void sleep ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;

 lin_in_1 = 0;
 lin_in_2 = 0;
 z_bo_179 = true ;
 if (!(z_bo_103) )  return;
 checksleep ( ); 
 }
//sleep
//---------------------  ----------------------------------------

 void checksleep ()
 {

//----------------------------
 int        lin_in_1;
 int        lin_in_2;

 lin_in_1 = 0;
 lin_in_2 = 0;
 if (!(HistoryTotal() > 0) )  return;
 z_in_196 = consecutive ( 0) ;
 z_lo_305 = 0 ;
 for (z_in_190=HistoryTotal() - 1 ; z_in_190 >= 0 ; z_in_190=z_in_190 - 1)
  {
  OrderSelect(z_in_190,SELECT_BY_POS,MODE_HISTORY); 
  if ( z_lo_305 != 0 )
   break;
  if ( OrderSymbol() == Symbol() && OrderMagicNumber() == magic )
   {
   z_lo_305 = OrderCloseTime() ;
   }
  }
 if (!(z_in_196 >= z_in_104) )  return;
 if (!(TimeCurrent() - z_lo_305 <  z_in_105 * 60) )  return;
 z_bo_179 = false ;
 }
//checksleep
//---------------------  ----------------------------------------

 void time ()
 {

//----------------------------

 z_bo_186 = true ;
 if (!(z_bo_127) )  return;
 if (!(checktime(z_in_128,z_in_129,z_bo_130,z_in_131,z_in_132,z_bo_133,z_in_134,z_in_135,z_in_136,z_in_137,z_bo_138,z_bo_139,z_in_140,z_in_141)) )  return;
 z_bo_186 = false ;
 }
//time
//---------------------  ----------------------------------------

 bool checktime (int mu_0, int mu_1, bool mu_2, int mu_3, int mu_4, bool mu_5, int mu_6, int mu_7, int mu_8, int mu_9, bool mu_10, bool mu_11, int mu_12, int mu_13)
 {
 string      zi_st_1;

//----------------------------
 long       lin_lo_1;

 z_do_235[13] = 1332900000.0;
 z_do_234[13] = 1351652400.0;
 z_do_235[12] = 1301364000.0;
 z_do_234[12] = 1319511600.0;
 z_do_235[11] = 1269914400.0;
 z_do_234[11] = 1288062000.0;
 z_do_235[10] = 1238292000.0;
 z_do_234[10] = 1256439600.0;
 z_do_235[9] = 1206842400.0;
 z_do_234[9] = 1224990000.0;
 z_do_235[8] = 1174788000.0;
 z_do_234[8] = 1193540400.0;
 z_do_235[7] = 1143338400.0;
 z_do_234[7] = 1162090800.0;
 z_do_235[6] = 1111888800.0;
 z_do_234[6] = 1130641200.0;
 z_do_235[5] = 1080439200.0;
 z_do_234[5] = 1099191600.0;
 z_do_235[4] = 1048989600.0;
 z_do_234[4] = 1067137200.0;
 z_do_235[3] = 1017540000.0;
 z_do_234[3] = 1035687600.0;
 z_do_235[2] = 985485600.0;
 z_do_234[2] = 1004238000.0;
 z_do_235[1] = 954036000.0;
 z_do_234[1] = 972788400.0;
 z_do_235[0] = 922586400.0;
 z_do_234[0] = 941338800.0;
 lin_lo_1 = TimeCurrent();
 if ( lin_lo_1<z_do_234[TimeYear(TimeCurrent()) - 1999] )
  {
  lin_lo_1 = TimeCurrent();
  if ( lin_lo_1>z_do_235[TimeYear(TimeCurrent()) - 1999] )
   {
   z_in_208 = mu_0 ;
  }}
 else
  {
  z_in_208 = mu_1 ;
  }
 zi_st_1 = string(Year()) + "." + string(Month()) + "." + string(Day()) ;
 if ( mu_2 )
  {
  z_in_205=mu_3 + z_in_208;
  if ( z_in_205 > 23 )
   {
   z_in_205=z_in_205 - 24;
   }
  if ( z_in_205 <  10 )
   {
   z_st_268="0" + string(z_in_205);
   }
  if ( z_in_205 > 9 )
   {
   z_st_268 = z_in_205 ;
   }
  if ( mu_4 <  10 )
   {
   z_st_269="0" + string(mu_4);
   }
  if ( mu_4 > 9 )
   {
   z_st_269 = mu_4 ;
   }
  z_lo_294 = StringToTime(zi_st_1 + " " + z_st_268 + ":" + z_st_269) ;
  }
 if ( mu_5 )
  {
  z_in_201=mu_6 + z_in_208;
  if ( z_in_201 > 23 )
   {
   z_in_201=z_in_201 - 24;
   }
  if ( z_in_201 <  10 )
   {
   z_st_262="0" + string(z_in_201);
   }
  if ( z_in_201 > 9 )
   {
   z_st_262 = z_in_201 ;
   }
  if ( mu_7 <  10 )
   {
   z_st_263="0" + string(mu_7);
   }
  if ( mu_7 > 9 )
   {
   z_st_263 = mu_7 ;
   }
  z_lo_291 = StringToTime(zi_st_1 + " " + z_st_262 + ":" + z_st_263) ;
  z_in_203=mu_8 + z_in_208;
  if ( z_in_203 > 23 )
   {
   z_in_203=z_in_203 - 24;
   }
  if ( z_in_203 <  10 )
   {
   z_st_264="0" + string(z_in_203);
   }
  if ( z_in_203 > 9 )
   {
   z_st_264 = z_in_203 ;
   }
  if ( mu_9 <  10 )
   {
   z_st_265="0" + string(mu_9);
   }
  if ( mu_9 > 9 )
   {
   z_st_265 = mu_9 ;
   }
  z_lo_292 = StringToTime(zi_st_1 + " " + z_st_264 + ":" + z_st_265) ;
  }
 if ( mu_11 )
  {
  z_in_204=mu_12 + z_in_208;
  if ( z_in_204 > 23 )
   {
   z_in_204=z_in_204 - 24;
   }
  if ( z_in_204 <  10 )
   {
   z_st_266="0" + string(z_in_204);
   }
  if ( z_in_204 > 9 )
   {
   z_st_266 = z_in_204 ;
   }
  if ( mu_13 <  10 )
   {
   z_st_267="0" + string(mu_13);
   }
  if ( mu_13 > 9 )
   {
   z_st_267 = mu_13 ;
   }
  z_lo_293 = StringToTime(zi_st_1 + " " + z_st_266 + ":" + z_st_267) ;
  }
 if ( z_in_142  !=  24 )
  {
  z_in_199=z_in_142 + z_in_208;
  if ( z_in_199 > 23 )
   {
   z_in_199=z_in_199 - 24;
   }
  if ( z_in_199 <  10 )
   {
   z_st_283="0" + string(z_in_199);
   }
  if ( z_in_199 > 9 )
   {
   z_st_283 = z_in_199 ;
   }
  z_st_284 = "00" ;
  z_lo_309 = StringToTime(zi_st_1 + " " + z_st_283 + ":" + "00") ;
  }
 if ( mu_5 && ( ( z_in_201 <= z_in_203 && TimeCurrent() < z_lo_291 ) || TimeCurrent() > z_lo_292 || (z_in_201 > z_in_203 && TimeCurrent() <  z_lo_291 && TimeCurrent() > z_lo_292) ) )
  {
  return(true); 
  }
 if ( mu_10 == false && DayOfWeek() == 0 )
  {
  return(true); 
  }
 if ( mu_11 && DayOfWeek() == 5 && TimeCurrent() > z_lo_293 )
  {
  return(true); 
  }
 if ( mu_2 && DayOfWeek() == 1 && TimeCurrent() <  z_lo_294 )
  {
  return(true); 
  }
 if ( z_in_142  !=  24 && TimeHour(TimeCurrent())  !=  TimeHour(z_lo_309) )
  {
  return(true); 
  }
 return(false); 
 }
//checktime
//---------------------  ----------------------------------------

 void news ()
 {

//----------------------------

 z_bo_187 = true ;
 if (!(z_bo_154) )  return;
 if (!(checknews()) )  return;
 z_bo_187 = false ;
 }
//news
//---------------------  ----------------------------------------

 bool checknews ()
 {
 string      zi_st_1;
 int         zi_in_2;
 int         zi_in_3;
 int         zi_in_4;
 int         zi_in_5;

//----------------------------

 if ( IsTesting() && z_lo_307  !=  Time[0] )
  {
  zi_st_1 = "@BACKUP@.CSV" ;
  z_in_216 = FileOpen(zi_st_1,11) ;
  if ( z_in_216 > 0 && FileIsEnding(z_in_216) == false && !(FileIsEnding(z_in_216)) )
   {
   z_st_271 = FileReadString(z_in_216,0) ;
   z_st_272 = StringSubstr(z_st_271,1,4) ;
   z_st_273 = StringSubstr(z_st_271,6,2) ;
   z_st_274 = StringSubstr(z_st_271,9,2) ;
   z_st_275 = StringSubstr(z_st_271,14,5) ;
   z_st_276 = StringSubstr(z_st_271,24,3) ;
   z_in_217 = StringToTime(z_st_272 + "." + z_st_273 + "." + z_st_274 + " " + z_st_275) ;
   z_st_277 = StringSubstr(Symbol(),0,3) ;
   z_st_278 = StringSubstr(Symbol(),3,3) ;
   if ( ( ( z_in_217 - Time[0] >= 0 && z_in_217 - Time[0] < z_in_155 * 60 ) || ( Time[0] - z_in_217 >= 0 && Time[0] - z_in_217 <  z_in_156 * 60 && z_st_277 == z_st_276 ) || z_st_278 == z_st_276 ) )
    {
    FileClose(z_in_216); 
    }
   return(true); 
   }
  FileClose(z_in_216); 
  z_lo_307 = Time[0] ;
  }
 if ( IsTesting() == false && Minute()  !=  z_in_325 )
  {
  z_in_325 = Minute() ;
  zi_in_2 = iCustom(NULL,0,"FFCal",true,true,false,true,true,1,0) ;
  zi_in_3 = iCustom(NULL,0,"FFCal",true,true,false,true,true,1,1) ;
  zi_in_4 = iCustom(NULL,0,"FFCal",true,true,false,true,true,2,0) ;
  zi_in_5 = iCustom(NULL,0,"FFCal",true,true,false,true,true,2,1) ;
  if ( ( ( z_bo_157 && zi_in_3 <= z_in_155 && zi_in_5 == 1 ) || (zi_in_2 <= z_in_156 && zi_in_4 == 1) ) )
   {
   return(true); 
   }
  if ( ( ( z_bo_158 && zi_in_3 <= z_in_155 && zi_in_5 == 2 ) || (zi_in_2 <= z_in_156 && zi_in_4 == 2) ) )
   {
   return(true); 
   }
  if ( ( ( z_bo_159 && zi_in_3 <= z_in_155 && zi_in_5 == 3 ) || (zi_in_2 <= z_in_156 && zi_in_4 == 3) ) )
   {
   return(true); 
  }}
 return(false); 
 }
//checknews
//---------------------  ----------------------------------------

 double nd (double mu_0, double mu_1)
 {
 double      zi_do_1;

//----------------------------

 zi_do_1 = 0.0 ;
 zi_do_1 = 0.0 ;
 zi_do_1 = NormalizeDouble(mu_0,mu_1) ;
 return(zi_do_1); 
 }
//nd
//---------------------  ----------------------------------------

 int period (int mu_0)
 {

//----------------------------

 switch(mu_0)
  {
  case 0 :
   return(0); 
  case 1 :
   return(1); 
  case 2 :
   return(5); 
  case 3 :
   return(15); 
  case 4 :
   return(30); 
  case 5 :
   return(60); 
  case 6 :
   return(240); 
  case 7 :
   return(1440); 
  case 8 :
   return(10080); 
  case 9 :
   return(43200); 
  default :
   return(0); 
  }
 }
//period
//---------------------  ----------------------------------------

 double OrdersProfit1 (int mu_0)
 {
 double      zi_do_1;
 int         zi_in_2;

//----------------------------

 zi_do_1 = 0.0 ;
 zi_do_1 = 0.0 ;
 for (zi_in_2 = 0 ; zi_in_2 <= OrdersTotal() ; zi_in_2 = zi_in_2 + 1)
  {
  OrderSelect(zi_in_2,SELECT_BY_POS,MODE_TRADES); 
  if ( OrderMagicNumber() == mu_0 )
   {
   zi_do_1 = OrderProfit() + OrderSwap() + OrderCommission() + zi_do_1 ;
   }
  }
 return(zi_do_1); 
 }
//OrdersProfit1
//---------------------  ----------------------------------------

 void CloseOrders (int mu_0)
 {
 int         zi_in_1;

//----------------------------

 for (zi_in_1 = OrdersTotal() ; zi_in_1 >= 0 ; zi_in_1 = zi_in_1 - 1)
  {
  OrderSelect(zi_in_1,SELECT_BY_POS,MODE_TRADES); 
  if ( ( OrderType() == 0 || OrderType() == 1 ) && OrderMagicNumber() == mu_0 )
   {
   OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,0xFFFFFFFF); 
   }
  }
 }
//CloseOrders
//---------------------  ----------------------------------------

