Author: Copyright 2018, QstrQstr
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt Closes Orders by itself
Indicators Used
Moving average indicator
Miscellaneous
It issuies visual alerts to the screenIt writes information to fileUses files from the file system
0 Views
0 Downloads
0 Favorites
qstr5_8
ÿþ//+------------------------------------------------------------------+

//|                                                      qstr5_8.mq4 |

//|                                         Copyright 2018, QstrQstr |

//|                                             https://www.qstr.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2018, QstrQstr"

#property link      "https://www.qstr.com"

#property version   "1.00"

#property strict

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Expert initialization function     

//-:A?5@B 4;O >4=>3> "$ @02=>3> ?5@8>4C >B:@KB>3> >:=0 

// 01>B05< =04 B>G:>9 2E>40

//                              |

//+------------------------------------------------------------------+



//--- input parameters

//+-----------------------------------------------------------------------------+

extern int                TakeProfit    = 4500;

extern int                StopLoss      = 100;

extern double Lots=1;     // 5AB:> 7040==>5 :>;8G. ;>B>2

extern double Prots=0.07;    // @>F5=B A2>1>4=KE A@54AB2



                             // 038G5A:89 =><5@ >B:@KB>3> >@45@0

extern int                Magic=12345;

//+-----------------------------------------------------------------------------+

sinput string             MA            = "0AB@>9:8 8=48:0B>@0 Moving average";

extern int                ma_period     = 20;

extern int                ma_shift      = 0;

extern ENUM_MA_METHOD     ma_method     = MODE_EMA;

extern ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE;

extern int                shift         = 0;



extern int    Period_MA_1=14;      // 5@8>4  1

extern int    Period_MA_2=30;      // 5@8>4  2

extern int    Period_MA_3=120;      // 5@8>4  3

extern int    v14=1;                 // 8=. :>@>ABL 87<5=5=8O  2 ?C=:B0E =0 10@ :0: >?@545;5=85 D;5B0

extern int    v30=1;                 // 8=. :>@>ABL 87<5=5=8O  2 ?C=:B0E =0 10@ :0: >?@545;5=85 D;5B0

extern int    v120=1;                 // 8=. :>@>ABL 87<5=5=8O  2 ?C=:B0E =0 10@ :0: >?@545;5=85 D;5B0

extern int    n=12;                 // @0B=>ABL C<5=LH5=8O "$ 8 C25;8G5=8O ?5@8>40 ?@>AG5B0

extern double Rastvor=28.0;    //  0AAB>O=85 <564C  



datetime tx, tcl;



string

Symb;                            // A8<2>; 2K1@0==>3> >@45@0



int

cnt=0,                           // ><5@ >@45@0

Total,                           // >;8G5AB2> >@45@>2 2 >:=5 

Tip=-1,                          // "8? 2K1@0=. >@45@0 (B=0,S=1 -1 =5B >@45@0)

Ticket,                          // "8:5B >@45@0

Or=-1,                           // !>AB>O=85 -1 =5B =0H8E >@45@>2, 645< A83=0;0 >B:@KB8O 109 8;8 A5;;,

                                 // 0 >B:@KB >@45@ 109, 645< A83=0;0 70:@KB8O >@45@0 109, 

                                 // 1 >B:@KB >@45@ A5;;, 645< A83=0;8 70:@KB8O A5;;

TrOr=-1,// !83=0; >B:@KB8O >@45@>2 ?>   

OpOr=-1,// !83=0; >B:@KB8O >@45@>2 -1 =5B, 0 109, 1 A5;; A >BA5G5=85< 548=8G=KE >H81>:

ClOr=-1,// !83=0; 70:@KB8O >@45@0 -1 =5B, 0 109, 1 A5;;



Handle,

Handle1,

Handle2,// $09;>2K9 >?8A0B5;L

Qnt_Symb,

Qnt_Symb1,

Qnt_Symb2;                           // >;8G5AB2> 70?8A0==KE A8<2.

string File_Name="QstrV.csv";        // <O D09;0

string File_Name1="QstrV1.csv";        // <O D09;0

string File_Name2="QstrV2.csv";        // <O D09;0



double  MA2[26],MA14[26],MA30[26],MA120[26],MA480[26],//>10@=K5 7=0G5=8O  4;O G0A>2>3> B09<D@59<0

                                                      //MA2n[26],MA14n[26],MA30n[26],MA120n[26],MA480n[26],// >10@=K5 7=0G5=8O  4;O "$ 5<8= A ?@82545==K< CA@54=5=85< : 1 G0AC

//MA2_5n[26],VMA2_5n[26],// =0G5=85  4;O "$ 5<8= =0 2 10@0E 8 A:>@>ABL 87<5=5=8O =0 ?5@2>< 10@5

VMA2[26],VMA14[26],VMA30[26],VMA120[26],VMA480[26],// !:>@>AB8 87<5=5=8O  2 ?C=:B0E =0 10@ 4;O "$ 1 G0A

                                                   //VMA2n[26],VMA14n[26],VMA30n[26],VMA120n[26],VMA480n[26],//!:>@>AB8 87<5=5=8O _n 2 ?C=:B0E =0 10@ 4;O "$ 5<8= 

//A CA@54 =0 1G0A



RMA2_14[26],RMA14_30[26],RMA30_120[26],RMA120_480[26],//@07=8F0 2-14, 14-30, 30-120, 120-480   

                                                      //RMAn2_14[26],RMAn14_30[26],RMAn30_120[26],RMAn120_480[26],//  07=8F0 2n-MA14n, MA14n-MA30n, MA30n-MA120n =0 ?5@2>< 10@5

VRMAn2_14[26],VRMAn14_30[26],VRMAn30_120[26],VRMAn120_480[26]// !:>@>ABL 87<5=5=8O @07=8FK RMAn2_14, RMAn14_30, RMAn30_120,

                                                             //RMAn120_480  =0 10@    

;

double Ru[66], Rd[66],Bd[66],Bu[66],                     // 8=B5@20; @>AB0, ?045=8O 2 ?C=:B0E, @0AAB>O=8O 2 10@0E <564C <8= <0E

Mx[66],Mn[66], Max[66],Min[66],Mxn,                  // <0E, <8= ?> =><5@0< 2 ?C=:B0E

RMx[66],RMn[66],RMxNb[66],RMnNb[66],                // @07=8F0 <564C =0945==K< 8 ?@54K4CI8< <8=, <0: 8 ?C=:B0E 8 10@0E 1 C@>2=O 

MxNb[66],MnNb[66], MaxNb[66],MinNb[66],                 // =><5@0 10@>2 <8= 8 <0E

// 2B>@>9 C@>25=L <8= <0E

Ru1[66], Rd1[66],Bd1[66],Bu1[66],                     // 8=B5@20; @>AB0, ?045=8O 2 ?C=:B0E, @0AAB>O=8O 2 10@0E <564C <8= <0E

Mx1[66],Mn1[66], Mnmx1[66],Mxmn1[66],  Mxn1,Nb1,        // <0E, <8= ?> =><5@0<  2 ?C=:B0E

RMx1[66],RMn1[66],RMxNb1[66],RMnNb1[66],                // @07=8F0 <564C =0945==K< 8 ?@54K4CI8< <8=, <0: 8 ?C=:B0E 8 10@0E 2 C@>2=O

MxNb1[66],MnNb1[66], MnxNb1[66],MxnNb1[66],                 // =><5@0 10@>2 <8= 8 <0E, MnxNb1 =><5@ <8=8<C<0 <0:A8<>2 1 C@>2=O

Nmxd1[66],Nmxu1[66],Nmnd1[66],Nmnu1[66],                     //:>;8G5AB2> <8= <0E ?5@2>3> C@>2=O <564C <8= <0E 2B>@>3> C@>2=O 



// B@5B89 C@>25=L <8= <0E (?>@O4>:)

Ru2[66], Rd2[66],Bd2[66],Bu2[66],                     // 8=B5@20; @>AB0, ?045=8O 2 ?C=:B0E, @0AAB>O=8O 2 10@0E <564C <8= <0E

Mx2[66],Mn2[66], Mnmx2[66],Mxmn2[66],  Mxn2,Nb2,        // <0E, <8= ?> =><5@0<  2 ?C=:B0E

RMx2[66],RMn2[66],RMxNb2[66],RMnNb2[66],                // @07=8F0 <564C =0945==K< 8 ?@54K4CI8< <8=, <0: 8 ?C=:B0E 8 10@0E 2 C@>2=O

MxNb2[66],MnNb2[66], MnxNb2[66],MxnNb2[66],                 // =><5@0 10@>2 <8= 8 <0E, MnxNb1 =><5@ <8=8<C<0 <0:A8<>2 1 C@>2=O

Nmxd2[66],Nmxu2[66],Nmnd2[66],Nmnu2[66]                     //:>;8G5AB2> <8= <0E ?5@2>3> C@>2=O <564C <8= <0E 2B>@>3> C@>2=O 



;

int m,bd,bu,mn,mx,nb,m1,mn1,mx1,

m2,mn2,mx2,m3,mn3,mx3,n1,n2,n3             // m ?>@O4:>2K5 =><5@0 <8=, <0E//bd,bu @0AAB>O=85 2 10@0E <564C <8= <0E//nb =><5@ <8= <0E 

;

int Tr=-1, TrOpen=-1,// =0G5=8O B@5=40 , -1 D45B >6840=85, 0 225@E 09, 1 2=87 !5;;

Tr0,Tr1,Tr2,Tr3,Tr4, // =0G5=8O B@5=40 ?>B8:>2> =0 5 B8:0E, 4;O C18@0=8O 548=8G=>9 >H81:8 =0G0;L=KE 7=0G5=89 =0 =>2>< 10@5

TrOpen0,TrOpen1,TrOpen2,TrOpen3,TrOpen4;       // =0G5=8O B@5=40  ?>B8:>2> =0 5 B8:0E



double

MA_1_t,                          // =0G5=. _1 B5:CI55

MA_2_t,                          // =0G5=. _2 B5:CI55 

Lot,                             // >;8G. ;>B>2 2 2K1@0=.>@45@5

Lts,                             // >;8G. ;>B>2 2 >B:@K2.>@45@5

Min_Lot,                         // 8=8<0;L=>5 :>;8G5AB2> ;>B>2

Step,                            // (03 87<5=5=8O @07<5@0 ;>B0

Free,                            // "5:CI85 A2>1>4=K5 A@54AB20

One_Lot,                         // !B>8<>ABL >4=>3> ;>B0

Price,                           // &5=0 2K1@0==>3> >@45@0

SL,                              // SL 2K1@0==>3> >@45@0 

TP,                              // TP 2K1@0==>3> >@45@0

ProfB,                           // ?@>D8B 109 ?@8 >B:@KB>< >@45@5 109   

ProfS,                           // ?@>D8B A5;; ?@8 >B:@KB>< >@45@5 A5;;

MxProfB,                         // 0:A8<0;L=9 ?@>D8B 109 ?@8 >B:@KB>< >@45@5 109   

MxProfS,                         // 0:A8<0;L=K9 ?@>D8B A5;; ?@8 >B:@KB>< >@45@5 A5;;

MaxAsk = 0,                      // 0:A8<0;L=0O F5=0 ?@8 >B:@KB>< >@45@5 109  

MinBid = 1000,                    // 8=8<0;L=0O F5=0 ?@8 >B:@KB>< >@45@5 A5;; 

kx = 50,                               // :>MD A@010BK20=8O 70:@KB8O >@45@0

point                            // 1@0B=0O 25;8G8=0 Point                              

;                   

 

bool

Ans  =false,                     // B25B A5@25@0 ?>A;5 70:@KB8O

Cls_B=false,                     // @8B5@89 4;O 70:@KB8O  Buy

Cls_S=false,                     // @8B5@89 4;O 70:@KB8O  Sell

Opn_B=false,                     // @8B5@89 4;O >B:@KB8O  Buy

Opn_S=false,                     // @8B5@89 4;O >B:@KB8O  Sell

Work=true;                       // @8B5@89 @01>BK, 5A;8 :@8B8G5A:0O >H81:0 8;8 :>;8G5AB2> =0H8E >@45@>2 1>;55 1

bool sel=false;

//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  {



   Countinit();// DC=:F8O ?>4AG5B0 >B:@KBKE >@45@>2 8 ?>8A: A =0H8< <038:

//----------

   FileTest();

   FileTest1();

   FileTest2();// DC=:F8O >B:@KB8O D09;0 70?8A8 40==KE

   point = 1/Point; // GB>1K =5 45;8BL =0 ?>9=B

   tx=TimeCurrent();// 7040=85 2@5<5=8 =0G0;0 @01>BK A>25B=8:0

//--- create timer

   EventSetTimer(60);



//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {



   FileClose( Handle );                // 0:@K205< D09;

   Alert("$09; ",File_Name," 70:@KB.");// !>>1I5=85

   

    FileClose( Handle1 );                // 0:@K205< D09;

   Alert("$09; ",File_Name1," 70:@KB.");// !>>1I5=85

   

    FileClose( Handle2 );                // 0:@K205< D09;

   Alert("$09; ",File_Name2," 70:@KB.");// !>>1I5=85



//--- destroy timer

   EventKillTimer();



  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

   Total=Count();// >4AG5B >B:@KBKE >@45@>2 A =0H8< <038:, 5A;8 1>;55 1 :>=5F



                 // @5420@8B.>1@01>B:0

   if(Bars<Period_MA_2) // 54>AB0B>G=> 10@>2

     {

      Alert("54>AB0B>G=> 10@>2 2 >:=5. -:A?5@B =5 @01>B05B.");

      return;                                   // KE>4 87 start()

     }

   if(Work==false) // @8B8G5A:0O >H81:0

     {

      Alert("@8B8G5A:0O >H81:0. -:A?5@B =5 @01>B05B.");

      return;                                   // KE>4 87 start()

     }

//--------------------------------------------------------------- 4 --

// >B8:>2>5 ?@8A2>5=85 B@5=40    

   Tr4=Tr3;

   Tr3=Tr2;

   Tr2=Tr1;

   Tr1=Tr0;

   Tr0=Tr;

   TrOpen4=TrOpen3;

   TrOpen3=TrOpen2;

   TrOpen2=TrOpen1;

   TrOpen1=TrOpen0;

   TrOpen0=TrOpen;

// 2K7>2 DC=:F89 B@5=40, D;030 >B:@KB8O >@45@>2  

   Tr=IMA();

   TrOr=TROR();

   TrOpen=TROPEN();

   TREND();

   string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);

   Print("Tr= ",Tr," 14[1]= ",MA14[1]," V14[1]= ",VMA14[1],

         "120[1]= ",MA120[1]," V120[1]= ",VMA120[1]," VR30_120[1]= ",VRMAn30_120[1]);



   Comment(">;-2> =0H8E >@45@>2 = ",Total," "8? = ",Tip,"  ",OrderType()," Or = ",Or," sel = ",sel,

           "Magic ",OrderMagicNumber(),"@45@>2 2A53> ",OrdersTotal()," 0@>2 ",Bars,"\n",

           ""@5=4 = ",Tr,"\n",

           "$;03 "   = ",TrOr,"\n",

           "&5=0 Ask = ",Ask,"\n",

           " 07<5@ ?C=:B0 = ",Point,"\n",

           ">;8G5AB2> 7=0:>2, ?>A;5 70?OB>9 = ",Digits,"\n",

           "><5@ 2K1@0==. >@4 ",cnt," = ","\n",// .

           ""8:5B 2K1@0==. >@4 ",Ticket," = ",OrderTicket(),

           "&5=0 2K1@0==. >@4. ",Price," = ",OrderOpenPrice(),"\n",// 

           " SL 2K1@0==>3> >@4.  ",SL," = ",OrderStopLoss(),"\n",// 

           "TP 2K1@0==>3> >@4.  ",TP," = ",OrderTakeProfit(),"\n",// 

           ">;8G5AB2> ;>B>2  ",Lot," = ",OrderLots() // 



           );

   datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

      Qnt_Symb1=FileWrite(Handle1,var1," Or= ",Or," Tip= ",Tip," 2:= ",Ask,

                         " Price= ",Price," ProfB = ",ProfB,

                         " MxProfB = ",MxProfB," ProfS = ",ProfS,

                         " MxProfS = ",MxProfS, "  kx = ",kx

                         );//0?8AL 2 D09;



      if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

        {

         Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

        };

      

     tx=tm;

     };



//---

 

   if(tcl!=tm && tm>=tcl+1620 && ClOr==-1)

 {

   if(Or==-1)

     {

      if(TrOr==0 //&& TrV==0 && TrS==0

         )

        {   

        

         MinBid=1000;

         MxProfS=0;

         ProfS=0;

         

         MaxAsk=0;

         MxProfB=0;

         ProfB=0;

         kx = 50;

        

         OpOr=0;

         Or=OpenOr(OpOr);     

      

         return;

        }

        

      if(TrOr==1 //&& TrV==1 && TrS==1

         )

        {

        

        

         MaxAsk=0;

         MxProfB=0;

         ProfB=0;

        

         MinBid=1000;

         MxProfS=0;

         ProfS=0;

         kx = 50;

        

         OpOr=1;

         Or=OpenOr(OpOr);

        



         return;

        }

      OpOr=-1;

      return;

     }

     }

//-------------------------------------------------------------------------------------     

// @>?CA: 545=8G=>3> 87<5=5=8O >@45@0 =0 A<5=5 10@0 8 ?@8 A<5=5 B@5=40 70:@KB85 >@45@0

//---------------------------------------------------------------------------------------



   if(Or==0)

     {

     ProfB = round((Ask-Price)*point);

      if( Ask>MaxAsk  )

        {MaxAsk=Ask;

        MxProfB=round((MaxAsk-Price)*point);

         }       

           

                 

         if(  MxProfB > 800  ) 

        { kx=1.1; }

         if(  MxProfB > 700 && MxProfB <= 800  ) 

        { kx=1.25; }

       if( MxProfB > 180 && MxProfB <= 700  ) 

        { kx=5; }

       if( MxProfB > 80 && MxProfB <= 180  ) 

        { kx=8; }

         

         if(

              ProfB > 4 && ProfB * kx < MxProfB || ProfB > 100 // || MxProfB > 40 && MxProfB * -1 < ProfB && ProfB < -4

              ) 

              {

           ClOr=0;

         Or=CloseOr(ClOr);  

        

         MaxAsk=0;

         MxProfB=0;

         ProfB=0;

        

         MinBid=1000;

         MxProfS=0;

         ProfS=0;

         kx = 50;

        tcl=tm;

            

         return;

        }

     

    

    if( MxProfB <= 80 )

   {return; }          

       

     }



   if(Or==1)

     {

     ProfS = round((Price - Bid) *point);

      if( Bid<MinBid  )

        {MinBid=Bid;

        MxProfS=round((Price - MinBid)*point);

         }

        

                 

         if(  MxProfS > 800  ) 

        { kx=1.1; }

         if(  MxProfS > 700 && MxProfS <= 800  ) 

        { kx=1.25; }

       if( MxProfS > 180 && MxProfS <= 700  ) 

        { kx=5; }

       if( MxProfS > 80 && MxProfS <= 180  ) 

        { kx=8; }

         

         if(

            ProfS > 4 && ProfS * kx < MxProfS || ProfS > 100 // || MxProfS > 40 && MxProfS * -1 < ProfS && ProfS < -4

             ) 

          

        {        

          ClOr=1;

         Or=CloseOr(ClOr);

       

         MaxAsk=0;

         MxProfB=0;

         ProfB=0;

        

         MinBid=1000;

         MxProfS=0;

         ProfS=0;

         kx = 50;

         tcl=tm;    

        

         return;

        }

        

        if( MxProfS <= 80 )

        {return; }    

      }

   }

//+------------------------------------------------------------------+

//| Timer function                                                   |

//+------------------------------------------------------------------+

void OnTimer()

  {

//---



  }

//+------------------------------------------------------------------+

int Countinit() // !G5BG8: >@45@>2 ?@8 8=8F80;870F88, >72@0I05B :>;8G5AB2> >@45@>2 A =0H8< <038:

  {



   int Totalin=0;

   for(int cin=0; cin<OrdersTotal(); cin++)

     {

      if(sel=OrderSelect(cin,SELECT_BY_POS,MODE_TRADES))

        {

         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)

            Totalin++;

        }

     }

   if(Totalin>0) // 5 1>;55 >4=>3> >@45@0 A =0H8< <038: 2 =0G0;5 @01>BK M:A?5@B0

     {

      Alert(">;8G5AB2> >@45@>2 A =0H8< <038: = ",Totalin," ><5=O9B5 <038: 8;8 C40;8B5 >@45@0. -:A?5@B =5 @01>B05B.");

      Comment("I81:0 - :>;8G5AB2> >@45@>2 A =0H8< 038: = ",Totalin);

      Work=false;



      return(Totalin);                             // KE>4 87 Countinit()

     }

   Work=true;

   return(Totalin);

  }

//>=5F ?>4AG5B0 >@45@>2 ?@8 8=8F80;870F88 M:A?5@B0+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

int Count() // !G5BG8: >@45@>2, >72@0I05B 7=0G5=8O =0H53> >@45@0 8 :>;8G5AB2> >@45@>2 A =0H8< <038:

  {

   Total=0;

   Ticket=0;                  // ><5@ 2K1@0==. >@4.

   Symb="";                   //=AB@C<5=B >@45@0

   Tip=-1;                    // "8? 2K1@0==>3> >@4.

   Price=0;               // &5=0 2K1@0==. >@4.

   SL=0;                // SL 2K1@0==>3> >@4.

   TP=0;              // TP 2K1@0==>3> >@4.

   Lot=0;                    // >;8G5AB2> ;>B>2

   for(cnt=0; cnt<OrdersTotal(); cnt++)

     {

      if(sel=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))

        {

         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)

            Total++;

        }

     }

//   Alert(Total);

   if(Total>1) // 5 1>;55 >4=>3> >@4

     {

      Alert("@45@>2 A =0H8< <038: 1>;LH5 >4=>3> = ",Total," ><5=O9B5 <038: 8;8 C40;8B5 >@45@0. -:A?5@B =5 @01>B05B.");

      Comment("I81:0 2> 2@5<O @01>BK, :>;8G5AB2> >@45@>2 A =0H8< 038: = ",Total);

      Work=false;

      return(Total);                             // KE>4 87 Count()

     }

   if(Total==1)

     {

      Ticket=OrderTicket();                  // ><5@ 2K1@0==. >@4.

      Tip   =OrderType();                    // "8? 2K1@0==>3> >@4.

      Symb= Symbol();                        //=AB@C<5=B 2K1@0==>3> >@45@0;                   

      Price =OrderOpenPrice();               // &5=0 2K1@0==. >@4.

      SL    =OrderStopLoss();                // SL 2K1@0==>3> >@4.

      TP    =OrderTakeProfit();              // TP 2K1@0==>3> >@4.

      Lot   =OrderLots();                    // >;8G5AB2> ;>B>2

      if(Tip==OP_BUY)Or=0;

      if(Tip==OP_SELL)Or=1;

      if(Tip==OP_BUYSTOP)Or=4;

      if(Tip==OP_SELLSTOP )Or=5;

      Work=true;

      return(Total);                             // KE>4 87 Count()

     }

   if(Total==0)

     {

      Or=-1;

      Total=0;

      Ticket=0;                  // ><5@ 2K1@0==. >@4.

      Symb="";                   //=AB@C<5=B >@45@0

      Tip=-1;                    // "8? 2K1@0==>3> >@4.

      Price=0;               // &5=0 2K1@0==. >@4.

      SL=0;                // SL 2K1@0==>3> >@4.

      TP=0;              // TP 2K1@0==>3> >@4.

      Lot=0;                    // >;8G5AB2> ;>B>2

      Work=true;

     }

   return(Total);

  }

//>=5F ?>4AG5B0 >@45@>2+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//>4AG5B A:>;L7OI8E A@54=8E  ?>10@=>, 2>72@0I05B B@5=4 Tr -1 D;5B, 0 225@E 09, 1 2=87 !5;; 

int IMA()

  {

   for(int i=0; i<22; i++)

     {

      MA2[i]=NormalizeDouble((iMA(NULL,0,2,ma_shift,ma_method,applied_price,i)),7);

      //     MA2n[i]=NormalizeDouble((iMA(NULL,Period()/n,14,ma_shift,ma_method,applied_price,i)),7);

      //     MA2_5n[i]=NormalizeDouble((iMA(NULL,Period()/n,2,ma_shift,ma_method,applied_price,i)),7);

      MA14[i]=NormalizeDouble((iMA(NULL,0,14,ma_shift,ma_method,applied_price,i)),7);

      //     MA14n[i]=NormalizeDouble((iMA(NULL,Period()/n,14*n,ma_shift,ma_method,applied_price,i)),7);

      MA30[i]=NormalizeDouble((iMA(NULL,0,30,0,ma_method,applied_price,i)),7);

      //     MA30n[i]=NormalizeDouble ((iMA(NULL,Period()/n,30*n, ma_shift,ma_method,applied_price,i)),7);

      MA120[i]=NormalizeDouble((iMA(NULL,0,120,ma_shift,ma_method,applied_price,i)),7);

      //     MA120n[i]=NormalizeDouble((iMA(NULL,Period()/n,120*n,ma_shift,ma_method,applied_price,i)),7);

      MA480[i]=NormalizeDouble((iMA(NULL,0,480,ma_shift,ma_method,applied_price,i)),7);

      //     MA480n[i]=NormalizeDouble((iMA(NULL,Period()/n,480*n,ma_shift,ma_method,applied_price,i)),7);

     }

   for(int i=0; i<22; i++)

     {

      //     VMA2_5n[i]=NormalizeDouble(((MA2_5n[i]-MA2_5n[i+1])/Point),2);

      //      VMA2n[i]=NormalizeDouble(((MA2n[i]-MA2n[i+1])/Point),2);

      //      VMA14n[i]=NormalizeDouble(((MA14n[i]-MA14n[i+1])/Point),2);

      //     VMA30n[i]=NormalizeDouble(((MA30n[i]-MA30n[i+1])/Point),2);

      //     VMA120n[i]=NormalizeDouble(((MA120n[i]-MA120n[i+1])/Point),2);

      //     VMA480n[i]=NormalizeDouble(((MA480n[i]-MA480n[i+1])/Point),2);





      VMA2[i]=NormalizeDouble(((MA2[i]-MA2[i+1])*point),2);

      VMA14[i]=NormalizeDouble(((MA14[i]-MA14[i+1])*point),2);

      VMA30[i]=NormalizeDouble(((MA30[i]-MA30[i+1])*point),2);

      VMA120[i]=NormalizeDouble(((MA120[i]-MA120[i+1])*point),2);

      VMA480[i]=NormalizeDouble(((MA480[i]-MA480[i+1])*point),2);



      RMA120_480[i]=NormalizeDouble((MA120[i]-MA480[i])*point,2);

      RMA30_120[i]=NormalizeDouble((MA30[i]-MA120[i])*point,2);

      RMA14_30[i]=NormalizeDouble((MA14[i]-MA30[i])*point,2);

      RMA2_14[i]=NormalizeDouble((MA2[i]-MA14[i])*point,2);



      //     RMAn2_14[i]=NormalizeDouble((MA2n[i]-MA14n[i])/Point,2);

      //     RMAn14_30[i]=NormalizeDouble((MA14n[i]-MA30n[i])/Point,2);

      //     RMAn30_120[i]=NormalizeDouble((MA30n[i]-MA120n[i])/Point,2);

      //     RMAn120_480[i]=NormalizeDouble((MA120n[i]-MA480n[i])/Point,2);



      VRMAn2_14[i]=NormalizeDouble((RMA2_14[i]-RMA2_14[i+1]),2);

      VRMAn14_30[i]=NormalizeDouble((RMA14_30[i]-RMA14_30[i+1]),2);

      VRMAn30_120[i]=NormalizeDouble((RMA30_120[i]-RMA30_120[i+1]),2);

      VRMAn120_480[i]=NormalizeDouble((RMA120_480[i]-RMA120_480[i+1]),2);

     }



// @>25@:0 D;5B0 8 =5CAB>9G82>3> B@5=40

   if(

      (MathAbs(RMA30_120[1])<100 && MathAbs(VMA120[1])<1.2 && MathAbs(VMA14[1])<0.2 && MathAbs(VMA30[1])<0.2) || 

      ( VMA14[1]>=0 && VMA30[1]>0 && VMA120[1]<0 && MathAbs(RMA30_120[1])<=340) ||

      ( VMA14[1]<=0 && VMA30[1]<0 && VMA120[1]>0 && MathAbs(RMA30_120[1])<=340) ||

      (VMA14[1]>0 && VMA30[1]<0 && MathAbs(VMA120[1])<1.8 && MathAbs(RMA30_120[1])<=340) ||

      (VMA14[1]<0 && VMA30[1]>0 && MathAbs(VMA120[1])<1.8 && MathAbs(RMA30_120[1])<=340)

      )

     {

      Tr=-1;

      return(Tr);

     }



// @>25@:0 CAB>9G82>3> B@5=40

   if(

      ( RMA30_120[1]>=600 && VMA120[1]>=1) ||

      ( RMA30_120[1]>=500 && RMA14_30[1]>=30 && VMA120[1]>=1.8 ) ||

      ( RMA30_120[1]>=400 && RMA14_30[1]>=50 && VMA120[1]>=1.8 ) ||

      ( RMA30_120[1]>=300 && RMA14_30[1]>=80 && VMA14[1]>=-0.4 && VMA30[1]>=0.01 && VMA120[1]>=1.8 ) ||

      ( RMA30_120[1]>=200 && RMA14_30[1]>=60 && VMA14[1]>=-0.2 && VMA30[1]>=0.1 && VMA120[1]>=1.8 ) ||

      ( RMA30_120[1]>=100 && RMA14_30[1]>=30 && VMA14[1]>=-0.1 && VMA30[1]>=0.2 && VMA120[1]>=1.8 )

      )

     {

      Tr=0;

      return(Tr);

     }



   if(

      (RMA30_120[1]<=-600 && VMA120[1]<=-1) || 

      ( RMA30_120[1]<=-500 && RMA14_30[1]<=-30 && VMA120[1]<=-1.8 ) ||

      ( RMA30_120[1]<=-400 && RMA14_30[1]<=-50 && VMA120[1]<=-1.8 ) ||

      ( RMA30_120[1]<=-300 && RMA14_30[1]<=-80 && VMA14[1]<=0.4 && VMA30[1]<=-0.01 && VMA120[1]<=-1.8 ) ||

      ( RMA30_120[1]<=-200 && RMA14_30[1]<=-60 && VMA14[1]<=0.2 && VMA30[1]<=-0.1 && VMA120[1]<=-1.8 ) ||

      (RMA30_120[1]<=-100 && RMA14_30[1]<=-30 && VMA14[1]<=0.1 && VMA30[1]<=-0.2 && VMA120[1]<=-1.8)

      )

     {

      Tr=1;

      return(Tr);

     }

// @>25@:0 A@54=53> B@5=40 8;8 53> =0G0;0

//  if(



//      VMA120n[1]>1.8 && 

//      VMA30n[1]>1 && 

//      VMA14n[1]>2 && 

//      VRMAn12[1]>=0.5

//     )

//    {

//      Tr=0;

//      return(Tr);

//     }

//   if(

//      VMA120n[1]<-1.8 && 

//      VMA30n[1]<-1 && 

//      VMA14n[1]<-2 && 

//      VRMAn12[1]<=-0.5

//     )

//    {

//      Tr=1;

//      return(Tr);

//    }

   Tr=-1;



   return(Tr);



  }

  //>=5F ?>4AG5B0  8 >?@545;5=85 B@5=40 4;O A>AB>O=8O 157 >@45@>2-----------+

  //  CAB0=>2:0 D;030 >B:@KB8O >@45@0

int TROR()

  {

   if(

   

      VMA2[1]>0&&

      VMA14[1]>0&&

      VMA30[1]>0&&

      VMA120[1]>0&&

      RMA2_14[1]<20&&

  //    Close[1]<MA14[1]&&

      Close[0]>MA14[1]

     )

     {

      TrOr=0;

      return(TrOr);

     }



   if(

       VMA2[1]<0&&

      VMA14[1]<0&&

      VMA30[1]<0&&

      VMA120[1]<0&&

      RMA2_14[1]<20&&

     // Close[1]>MA14[1]&&

      Close[0]<MA14[1]

      )

     {

      TrOr=1;

      return(TrOr);

     }

   TrOr=-1;



   return(TrOr);





  }



//+------------------------------------------------------------------+





//?@545;5=85 B@5=40 ?@8 >B:@KB>< >@45@5-------------------------------------+

int TROPEN()

  {

   if(

   

   

      ( RMA30_120[1]>=600 && VMA120[1]>=1) ||

      ( RMA30_120[1]>=500 && RMA14_30[1]>=30 && VMA120[1]>=1.8 ) ||

      ( RMA30_120[1]>=400 && RMA14_30[1]>=50 && VMA120[1]>=1.8 ) ||

      ( RMA30_120[1]>=300 && RMA14_30[1]>=80 && VMA14[1]>=-0.4 && VMA30[1]>=0.01 && VMA120[1]>=1.8 ) ||

      ( RMA30_120[1]>=200 && RMA14_30[1]>=60 && VMA14[1]>=-0.2 && VMA30[1]>=0.1 && VMA120[1]>=1.8 ) ||

      ( RMA30_120[1]>=100 && RMA14_30[1]>=30 && VMA14[1]>=-0.1 && VMA30[1]>=0.2 && VMA120[1]>=1.8 )

      )

     {

      TrOpen=0;

      return(TrOpen);

     }



   if(

      (RMA30_120[1]<=-600 && VMA120[1]<=-1) ||

      (RMA30_120[1]<=-500 && RMA14_30[1]<=-30 && VMA120[1]<=-1.8 ) ||

      ( RMA30_120[1]<=-400 && RMA14_30[1]<=-50 && VMA120[1]<=-1.8 ) ||

      ( RMA30_120[1]<=-300 && RMA14_30[1]<=-80 && VMA14[1]<=0.4 && VMA30[1]<=-0.01 && VMA120[1]<=-1.8 ) ||

      ( RMA30_120[1]<=-200 && RMA14_30[1]<=-60 && VMA14[1]<=0.2 && VMA30[1]<=-0.1 && VMA120[1]<=-1.8 ) ||

      (RMA30_120[1]<=-100 && RMA14_30[1]<=-30 && VMA14[1]<=0.1 && VMA30[1]<=-0.2 && VMA120[1]<=-1.8)

      )

     {

      TrOpen=1;

      return(TrOpen);

     }



   TrOpen=-1;

   return(TrOpen);

  }



//>=5F CG5B0 D;03> >B:@KB8O >@45@>2+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//



//+------------------------------------------------------------------+  



//>4AG5B 4;8B5;L=>AB8 @>AB0 ?045=89, <0:A, <8= 8 >?@545;5=85 B@5=40

int TREND()

  {

  

  //--------------------<0:A8<C<K <8=8<C<K ?5@2>3> ?>@O4:0 -----------------------------------

   m=1;mn=1;mx=1;bu=1;bd=1;Mxn=Close[1];Mx[0]=Close[1];Mn[0]=Close[1];Max[0]=Close[1];Min[0]=Close[1];



   for(int i=1; i<132; i++)

     {

     string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);

      if(

         Close[i]>=Close[i+1] && Close[i+1]>=Close[i+2]

         )

        {bu++;}                          // :>;8G5AB2> 10@>2 @>AB0 4> <8=8<C<0, AG5B 2 10@0E 845B =0704 ?> 2@5<5=8, ?>MB><C =0>1>@>B

        

       if(

         Close[i]<=Close[i+1] && Close[i+1]<=Close[i+2]

         )

        {bd++;}                         // :>;8G5AB2> 10@>2 ?045=8O 4> <0:A8<C<0

        

//-------------------- <0:A8<C<K ?5@2>3> ?>@O4:0 -----------------------------------        

        if(

         Close[i]<Close[i+1] && Close[i+1]>Close[i+2]

         )

        {

        Mx[mx]=Close[i+1];                             // C@>25=L <0:A8<C<0

        Bd[mx]=bd;                             //:>;8G5AB2> 10@>2 <564C ?@54K4CH8< <8= 8 =0945==K< <0:A, ?5@2K9 <8= <0E @02=K C@>2=N ?5@2>3> 10@0   

        Rd[mx]=round((Mxn-Mx[mx])/Point);             // @07=8F0 2 ?C=:B0E <564C ?@54K4CI8< <8=8<C<>< 8 =0945==K< <0:A8<C<><

        MxNb[mx]=i+1;                                 // =><5@ 10@0 <0:A8<C<0

        RMx[mx]=round(( Mx[mx-1]- Mx[mx])/Point);           //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<><, >B@8F0B ?045=85 ?>;>68B @>AB

        RMxNb[mx]= MxNb[mx]- MxNb[mx-1];      //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<><

        Mxn=Mx[mx];                  // ?@8A20820=85 7=0G5=8O C@>2=O 4;O ?>4AG5B0 @07=8FK 2 ?C=:B0E A> A;54CNI8< <8=8<C<>< 8;8 <0:A8<C<><

/*        

         datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb2=FileWrite(Handle2,var1," Max ",m," mx ",mx," / ", Mx[mx]," / ",Bd[mx]," / ",Rd[mx],

        " / ",MxNb[mx], " RMx ",RMx[mx]," RMxNb ",RMxNb[mx]

                     );//0?8AL 2 D09;



   if(Qnt_Symb2<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     }; 

     };  

  */

     n1 = i+1;

     if(n1<132)

     {

     string NameObjmx="Max_" + n1 + "_"+Time[i+1];

   bool   created=ObjectCreate(0,NameObjmx,OBJ_ARROW_THUMB_DOWN,0,Time[i+1],High[i+1]); 

            if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3 

              { 

               //--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@ 

               ObjectSetInteger(0,NameObjmx,OBJPROP_ANCHOR,ANCHOR_BOTTOM); 

               //--- ?>A;54=89 HB@8E - ?>:@0A8< 

               ObjectSetInteger(0,NameObjmx,OBJPROP_COLOR,clrRed); 

               }  

               }

      //  if()

        m++;mx++;            // 2 :>=F5 m :>;8G5AB2> M:AB@5<C<>2, mx :>;8G5AB2> <0:A8<C<>2

        bu=1;bd=1;

        

        } 

//--------------------<8=8<C<K ?5@2>3> ?>@O4:0 -----------------------------------        

         if(

         Close[i]>Close[i+1] && Close[i+1]<Close[i+2]

         )

        {

        Mn[mn]=Close[i+1];                       // C@>25=L <8=8<C<0

        Bu[mn]=bu;                          //:>;8G5AB2> 10@>2 <564C ?@54K4CH8< <0E 8 =0945==K< <8=, ?5@2K9 <8= <0E @02=K C@>2=N 13> 10@0   

        Ru[mn]=round((Mxn-Mn[mn])/Point);           // @07=8F0 2 ?C=:B0E <564C ?@54K4CI8< <0:A8<C<>< 8 =0945==K< <8=88<C<><

        MnNb[mn]=i+1;                             // =><5@ 10@0 =0945==>3> <8=88<C<0

        RMn[mn]=round((Mn[mn-1]- Mn[mn])/Point);           //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <8=8<C<><, >B@8F0B ?045=85 ?>;>68B @>AB

        RMnNb[mn]= MnNb[mn]- MnNb[mn-1];      //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <8=8<C<><

        Mxn=Mn[mn];

 /*       

         datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb2=FileWrite(Handle2,var1," Min ",m," mn ",mn," / ", Mn[mn]," / ",Bu[mn]," / ",Ru[mn],

        " / ",MnNb[mn]," RMn ",RMn[mn]," RMnNb ",RMnNb[mn]

                     );//0?8AL 2 D09;



   if(Qnt_Symb2<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     }; 

      }; 

   */   

       int n11 = i+1;

       if(n11<132)

       {

     string NameObjmn="Min_" + n11 + "_"+Time[i+1];

        bool   created=ObjectCreate(0,NameObjmn,OBJ_ARROW_THUMB_DOWN,0,Time[i+1],Low[i+1]); 

            if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3 

              { 

               //--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@ 

               ObjectSetInteger(0,NameObjmn,OBJPROP_ANCHOR,ANCHOR_TOP); 

               //--- ?>A;54=89 HB@8E - ?>:@0A8< 

               ObjectSetInteger(0,NameObjmn,OBJPROP_COLOR,clrBlue); 

               }  

       }

       

        m++; mn++;

        bu=1;bd=1;

        

        } 



     }

     

     m1=m; mx1=mx; mn1=mn; // :>;8G5AB2> M:AB@5<C<>2, <0:A8<C<>2 8 <8=8<C<>2 13> ?>@O4:0

     

//-------------------- <0:A8<C<K <8=8<C<K 2B>@>3> ?>@O4:0-----------------------------------

 //--------------------AG8B05< @>AB ?045=85 A@548 <0:A8<C<>2 ?5@2>3> ?>@O4:0----------------------------------------------

m=1;mn=1;mx=1;bu=1;bd=1;Nb1=1;int Nbxn1=1;Mxn1=Mx[1];Mx1[0]=Mx[1];Mn1[0]=Mn[1];

Mnmx1[0]=Mx[1];Mxmn1[0]=Mn[1];MxNb1[0]=MxNb[1];MnxNb1[0]=MxNb[1];



   for(int i=1; i<mx1-2; i++)

     {

     string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);

      if(

         Mx[i]>=Mx[i+1] && Mx[i+1]>=Mx[i+2]

         )

        {bu++;}

        

       if(

         Mx[i]<=Mx[i+1] && Mx[i+1]<=Mx[i+2]

         )

        {bd++;} 

        

        //-------------------- 8I5< <0:A8<C<K 2 ?>@O4:0 A@548 <0:A8<C<>2 1 ?>@O4:0-------------------

       

        if(

         Mx[i]<Mx[i+1] && Mx[i+1]>Mx[i+2]

         )

        {

        Mx1[mx]=Mx[i+1];                      //C@>25=L =0945==>3> <0:A8<C<0 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 (F5=0) 

        MxNb1[mx]=MxNb[i+1];                  //=><5@ 10@0 =0945==>3> <0:A8<C<0 2 ?>@O4:0

        Nmxd1[mx]=bd;                    // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0

        Bd1[mx]=MxNb1[mx]-Nb1;           // :>;8G5AB2> 10@>2 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0

        Rd1[mx]=round((Mxn1-Mx1[mx])/Point); // ?045=85 2 ?C=:B0E >B =0945==>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CH53> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0

        RMx1[mx]=round(( Mx1[mx]- Mx1[mx-1])/Point);           //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0, >B@8F0B ?045=85 ?>;>68B @>AB

        RMxNb1[mx]= MxNb1[mx]- MxNb1[mx-1];      //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0

        Mxn1=Mx1[mx];

        Nb1=MxNb1[mx];

 /*       

         datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb1=FileWrite(Handle1,var1," Maxmx1 ",m," mx ",mx," / ", Mx1[mx]," / ",Bd1[mx]," / ",Rd1[mx],

        " / ",MxNb1[mx]," Nmxd1 ",Nmxd1[mx]," RMx1 ",RMx1[mx]," RMxNb1 ",RMxNb1[mx]

                     );//0?8AL 2 D09;



   if(Qnt_Symb1<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     }; 

     };

   */

       n2=Nb1;

        

       string NameObjmx1="Max2_"+n2+"_"+Time[n2];

         bool   created=ObjectCreate(0,NameObjmx1,OBJ_ARROW_THUMB_DOWN,0,Time[n2],High[n2]+(15*Point)); 

            if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3 

              { 

               //--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@ 

               ObjectSetInteger(0,NameObjmx1,OBJPROP_ANCHOR,ANCHOR_BOTTOM); 

               //--- ?>A;54=89 HB@8E - ?>:@0A8< 

               ObjectSetInteger(0,NameObjmx1,OBJPROP_COLOR,clrPeru); 

               } 

             

      //  if()

        m++;mx++;

        bu=1;bd=1;

        

        } 

         //-------------------- 8I5< <8=<<0;L=K5 <0:A8<C<K 2 ?>@O4:0 A@548 <0:A8<C<>2 1 ?>@O4:0-------------------

         if(

         Mx[i]> Mx[i+1] &&  Mx[i+1]<Mx[i+2]  // 8I5< <8=<0EA A@548 <0:A<8<>2 1 ?>@O4:0

         )

        {

        Mnmx1[mn]=Mx[i+1];                   // 8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 7=0G5=85 C@>2=O (F5=0)

        MnxNb1[mn]=MxNb[i+1];                // <8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 =><5@ 10@0

        Nmxu1[mn]=bu;                        // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0

        Bu1[mn]=MnxNb1[mn]-Nbxn1;     //:>;8G5AB2> 10@>2 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@5;K;CH8< <0:A8<C<>< 2 ?>@O4:0 

        Ru1[mn]=round((Mxn1-Mnmx1[mn])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CI53> <0:A8<C<0 2 ?>@O4:0 

        

        Mxn1=Mnmx1[mn];

        Nbxn1=MnxNb1[mn];

 /*       

         datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb1=FileWrite(Handle1,var1," Minmx1 ",m," mn ",mn," / ",  Mnmx1[mn]," / ",Bu1[mn]," / ",Ru1[mn],

        " / ",MnxNb1[mn]," / ", Nmxu1[mn]

                     );//0?8AL 2 D09;



   if(Qnt_Symb1<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     };

     }; 

   */    

        m++;mn++;

        bu=1;bd=1;

        

        } 



     }

mx2=mx;        //:>;8G5AB2> <0:A8<C<>2 2 ?>@O4:0

m2=m;          //:>;8G5AB2> M:AB@5<C<>2 2 <0:A8<C<0E 2 ?>@O4:0

//-------------------- 8=8<C<K 2 ?>@O4:0 -----------------------------------



m=1;mn=1;mx=1;bu=1;bd=1;Nb1=1;Nbxn1=1;Mxn1=Mn[1];Mx1[0]=Mx[1];Mn1[0]=Mn[1];Mnmx1[0]=Mx[1];

Mxmn1[0]=Mn[1];MxNb1[0]=MxNb[0];MnxNb1[0]=MxNb[0];





   for(int i=1; i<mn1-2; i++)

     {

     string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);

      if(

         Mn[i]>=Mn[i+1] && Mn[i+1]>=Mn[i+2]

         )

        {bu++;}

        

       if(

         Mn[i]<=Mn[i+1] && Mn[i+1]<=Mn[i+2]

         )

        {bd++;} 

       

       //-------------------- 8I5< <8=<<C<K 2 ?>@O4:0 A@548 <8=8<C<>2 1 ?>@O4:0-------------------

       

        if(

         Mn[i]>Mn[i+1] && Mn[i+1]<Mn[i+2]

         )

        {

        

        Mn1[mn]=Mn[i+1];                      //C@>25=L =0945==>3> <0:A8<C<0 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 (F5=0) 

        MnNb1[mn]=MnNb[i+1];                  //=><5@ 10@0 =0945==>3> <0:A8<C<0 2 ?>@O4:0

        Nmnu1[mn]=bu;                    // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0

        Bu1[mn]=MnNb1[mn]-Nb1;           // :>;8G5AB2> 10@>2 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0

        Ru1[mn]=round((Mxn1-Mn1[mn])/Point); // ?045=85 2 ?C=:B0E >B =0945==>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CH53> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0

        RMn1[mn]=round(( Mn1[mn]- Mn1[mn-1])/Point);           //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0, >B@8F0B ?045=85 ?>;>68B @>AB

        RMnNb1[mn]= MnNb1[mn]- MnNb1[mn-1];      //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0

        Mxn1=Mn1[mn];

        Nb1=MnNb1[mn];

/*       

        datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb1=FileWrite(Handle1,var1," Minmn1 ",m," mn ",mn," / ", Mn1[mn]," / ",Bu1[mn]," / ",Ru1[mn],

        " / ",MnNb1[mn]," Nmnd1 ",Nmnd1[mn]," RMn1 ",RMn1[mn]," RMnNb1 ",RMnNb1[mn]

                     );//0?8AL 2 D09;



   if(Qnt_Symb1<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     }; 

     };

  */

  

       n2=Nb1;

      

       string NameObjmn1="Min2_"+n2+"_"+Time[n2];

         bool   created=ObjectCreate(0,NameObjmn1,OBJ_ARROW_THUMB_DOWN,0,Time[n2],Low[n2]-(15*Point)); 

            if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3 

              { 

               //--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@ 

               ObjectSetInteger(0,NameObjmn1,OBJPROP_ANCHOR,ANCHOR_TOP); 

               //--- ?>A;54=89 HB@8E - ?>:@0A8< 

               ObjectSetInteger(0,NameObjmn1,OBJPROP_COLOR,clrAquamarine); 

               } 

               

        m++;mn++;

        bu=1;bd=1;

             

        } 

        

                

      //-------------------- 8I5< <0:A8<0;L=K5 <8=<<C<K  2 ?>@O4:0 A@548 <8=8<C<>2 1 ?>@O4:0-------------------   

         if(

         Mn[i]< Mn[i+1] &&  Mn[i+1]> Mn[i+2]

         )

        {

        

        Mxmn1[mx]=Mn[i+1];                   // 8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 7=0G5=85 C@>2=O (F5=0)

        MxnNb1[mx]=MnNb[i+1];                // <8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 =><5@ 10@0

        Nmnd1[mx]=bd;                        // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0

        Bd1[mn]=MxnNb1[mx]-Nbxn1;     //:>;8G5AB2> 10@>2 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@5;K;CH8< <0:A8<C<>< 2 ?>@O4:0 

        Rd1[mn]=round((Mxn1-Mxmn1[mx])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CI53> <0:A8<C<0 2 ?>@O4:0 

        

        Mxn1=Mxmn1[mx];

        Nbxn1=MxnNb1[mx];

 /*       

         datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb1=FileWrite(Handle1,var1," Maxmn1 ",m," mx ",mx," / ", Mxmn1[mx]," / ",Bd1[mx]," / ",Rd1[mx]," / ",

        MxnNb1[mx]," / ", Nmnd1[mx]

                     );//0?8AL 2 D09;



   if(Qnt_Symb1<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     }; 

     };

   */

       

        m++;mx++;

        bu=1;bd=1;

           

        

        } 



     }

     mn2=mn;       // :>;8G5AB2> <8=8<C<>2 2 ?>@O4:0

     m2=m2+m;     // :>;8G5AB2> M:AB@5<C<>2 2 <8=8<C<0E 8 <0:A8<C<0E 2 ?>@O4:0

//------------------------------------------------------------------------------







//-------------------- <0:A8<C<K <8=8<C<K "@5BL53> ?>@O4:0-----------------------------------

 //--------------------AG8B05< @>AB ?045=85 A@548 <0:A8<C<>2 2B>@>3> ?>@O4:0----------------------------------------------

m=1;mn=1;mx=1;bu=1;bd=1;Nb2=1;int Nbxn2=1;Mxn2=Mx1[1];Mx2[0]=Mx1[1];Mn2[0]=Mn1[1];

Mnmx2[0]=Mnmx1[1];Mxmn2[0]=Mxmn1[1];MxNb2[0]=MxNb1[1];MnxNb2[0]=MnxNb1[1];



   for(int i=1; i<mx2-1; i++)

     {

     string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);

      if(

         Mx1[i]>=Mx1[i+1] && Mx1[i+1]>=Mx1[i+2]

         )

        {bu++;}

        

       if(

         Mx1[i]<=Mx1[i+1] && Mx1[i+1]<=Mx1[i+2]

         )

        {bd++;} 

        

        //-------------------- 8I5< <0:A8<C<K 3 ?>@O4:0 A@548 <0:A8<C<>2 2 ?>@O4:0-------------------

       

        if(

         Mx1[i]<Mx1[i+1] && Mx1[i+1]>Mx1[i+2]

         )

        {

        Mx2[mx]=Mx1[i+1];                      //C@>25=L =0945==>3> <0:A8<C<0 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 (F5=0) 

        MxNb2[mx]=MxNb1[i+1];                  //=><5@ 10@0 =0945==>3> <0:A8<C<0 2 ?>@O4:0

        Nmxd2[mx]=bd;                    // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0

        Bd2[mx]=MxNb2[mx]-Nb2;           // :>;8G5AB2> 10@>2 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0

        Rd2[mx]=round((Mxn2-Mx2[mx])/Point); // ?045=85 2 ?C=:B0E >B =0945==>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CH53> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0

        RMx2[mx]=round(( Mx2[mx]- Mx2[mx-1])/Point);           //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0, >B@8F0B ?045=85 ?>;>68B @>AB

        RMxNb2[mx]= MxNb2[mx]- MxNb2[mx-1];      //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0

        Mxn2=Mx2[mx];

        Nb2=MxNb2[mx];

  /*      

         datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb=FileWrite(Handle,var1," Maxmx2 ",m," mx ",mx," / ", Mx2[mx]," / ",Bd2[mx]," / ",Rd2[mx],

        " / ",MxNb2[mx]," Nmxd2 ",Nmxd2[mx]," RMx2 ",RMx2[mx]," RMxNb2 ",RMxNb2[mx]

                     );//0?8AL 2 D09;



   if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     }; 

     };

    */

    

       n3=Nb2;

       

        string NameObjmx2="Max3_"+n3+"_"+Time[n3];

         bool   created=ObjectCreate(0,NameObjmx2,OBJ_ARROW_THUMB_DOWN,0,Time[n3],High[n3]+(30*Point)); 

            if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3 

              { 

               //--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@ 

               ObjectSetInteger(0,NameObjmx2,OBJPROP_ANCHOR,ANCHOR_BOTTOM); 

               //--- ?>A;54=89 HB@8E - ?>:@0A8< 

               ObjectSetInteger(0,NameObjmx2,OBJPROP_COLOR,clrYellow); 

               }   

        

        m++;mx++;

        bu=1;bd=1;

        

        } 

         //-------------------- 8I5< <8=<<0;L=K5 <0:A8<C<K 3 ?>@O4:0 A@548 <0:A8<C<>2 2 ?>@O4:0-------------------

         if(

         Mx1[i]> Mx1[i+1] &&  Mx1[i+1]<Mx1[i+2]  // 8I5< <8=<0EA A@548 <0:A<8<>2 2 ?>@O4:0

         )

        {

        Mnmx2[mn]=Mx1[i+1];                   // 8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 7=0G5=85 C@>2=O (F5=0)

        MnxNb2[mn]=MxNb1[i+1];                // <8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 =><5@ 10@0

        Nmxu2[mn]=bu;                        // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0

        Bu2[mn]=MnxNb2[mn]-Nbxn2;     //:>;8G5AB2> 10@>2 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@5;K;CH8< <0:A8<C<>< 2 ?>@O4:0 

        Ru2[mn]=round((Mxn2-Mnmx2[mn])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CI53> <0:A8<C<0 2 ?>@O4:0 

        

        Mxn2=Mnmx2[mn];

        Nbxn2=MnxNb2[mn];

 /*       

         datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb=FileWrite(Handle,var1," Minmx2 ",m," mn ",mn," / ",  Mnmx2[mn]," / ",Bu2[mn]," / ",Ru2[mn],

        " / ",MnxNb2[mn]," / ", Nmxu2[mn]

                     );//0?8AL 2 D09;



   if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     }; 

     };

   */    

        m++;mn++;

        bu=1;bd=1;

        

        } 



     }

mx3=mx;        //:>;8G5AB2> <0:A8<C<>2 3 ?>@O4:0

m3=m;          //:>;8G5AB2> M:AB@5<C<>2 2 <0:A8<C<0E 3 ?>@O4:0

//-------------------- 8=8<C<K 3 ?>@O4:0 -----------------------------------



m=1;mn=1;mx=1;bu=1;bd=1;Nb2=1;Nbxn2=1;Mxn2=Mn1[1];Mx2[0]=Mx1[1];Mn2[0]=Mn1[1];

Mnmx2[0]=Mnmx1[1];Mxmn2[0]=Mxmn1[1];MnNb2[0]=MnNb1[1];MxnNb2[0]=MxnNb1[1];





   for(int i=1; i<mn2-1; i++)

     {

     string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);

      if(

         Mn1[i]>=Mn1[i+1] && Mn1[i+1]>=Mn1[i+2]

         )

        {bu++;}

        

       if(

         Mn1[i]<=Mn1[i+1] && Mn1[i+1]<=Mn1[i+2]

         )

        {bd++;} 

       

       //-------------------- 8I5< <8=<<C<K 3 ?>@O4:0 A@548 <8=8<C<>2 2 ?>@O4:0-------------------

       

        if(

         Mn1[i]>Mn1[i+1] && Mn1[i+1]<Mn1[i+2]

         )

        {

        

        Mn2[mn]=Mn1[i+1];                      //C@>25=L =0945==>3> <8=8<C<0 3 ?>@O4:0 <564C <8=8<C<0<8 2 ?>@O4:0 (F5=0) 

        MnNb2[mn]=MnNb1[i+1];                  //=><5@ 10@0 =0945==>3> <8=88<C<0 3 ?>@O4:0

        Nmnu2[mn]=bu;                    // :>;8G5AB2> <8=8<C<>2 2 ?>@O4:0 <564C =0945==K< <8=8<C<>< 3 ?>@O4:0 8 ?@54K4CI8< <0:A8<0;L=K< <8=8<C<>< 3 ?>@O4:0

        Bu2[mn]=MnNb2[mn]-Nb2;           // :>;8G5AB2> 10@>2 <564C =0945==K< <8=8<C<>< 3 ?>@O4:0 8 ?@54K4CI8< <0:A8<0;L=K< <8=8<C<>< 3 ?>@O4:0

        Ru2[mn]=round((Mxn2-Mn2[mn])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <8=8<C<0 3 ?>@O4:0 4> ?@54K4CH53> <0:A8<0;L=>3> <8=8<C<0 3 ?>@O4:0

        RMn2[mn]=round(( Mn2[mn]- Mn2[mn-1])/Point);           //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <8=8<C<>< 3 ?>@O4:0, >B@8F0B ?045=85 ?>;>68B @>AB

        RMnNb2[mn]= MnNb2[mn]- MnNb2[mn-1];      //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <8=8<C<>< 3 ?>@O4:0

        Mxn2=Mn2[mn];

        Nb2=MnNb2[mn];

 /*      

        datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb=FileWrite(Handle,var1," Minmn2 ",m," mn ",mn," / ", Mn2[mn]," / ",Bu2[mn]," / ",Ru2[mn],

        " / ",MnNb2[mn]," Nmnd2 ",Nmnd2[mn]," RMn2 ",RMn2[mn]," RMnNb2 ",RMnNb2[mn]

                     );//0?8AL 2 D09;



   if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     };

     }; 

*/    

     int   n4=Nb2;

  

        string NameObjmn2="Min3_"+n4+"_"+Time[n4];

         bool   created=ObjectCreate(0,NameObjmn2,OBJ_ARROW_THUMB_DOWN,0,Time[n4],Low[n4]-(30*Point)); 

            if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3 

              { 

               //--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@ 

               ObjectSetInteger(0,NameObjmn2,OBJPROP_ANCHOR,ANCHOR_TOP); 

               //--- ?>A;54=89 HB@8E - ?>:@0A8< 

               ObjectSetInteger(0,NameObjmn2,OBJPROP_COLOR,clrMagenta); 

               } 

              

                 

        m++;mn++;

        bu=1;bd=1;

             

        } 

        

                

      //-------------------- 8I5< <0:A8<0;L=K5 <8=<<C<K  3 ?>@O4:0 A@548 <8=8<C<>2 2 ?>@O4:0-------------------   

         if(

         Mn1[i]< Mn1[i+1] &&  Mn1[i+1]> Mn1[i+2]

         )

        {

        

        Mxmn2[mx]=Mn1[i+1];                   // 0:A8<0;L=K9 <8=8<C< (<0:A<8=) 3 ?>@O4:0 <564C <8=8<C<0<8 2 ?>@O4:0 7=0G5=85 C@>2=O (F5=0)

        MxnNb2[mx]=MnNb1[i+1];                // <0:A<8= 3 ?>@O4:0 <564C <8=8<C<0<8 2 ?>@O4:0 =><5@ 10@0

        Nmnd2[mx]=bd;                        // :>;8G5AB2> <8=8<C<>2 2 ?>@O4:0 <564C =0945==K< <0:A<8= 3 ?>@O4:0 8 ?@54K4CI8< <8=8<C<>8 3 ?>@O4:0

        Bd2[mn]=MxnNb2[mx]-Nbxn2;     //:>;8G5AB2> 10@>2 <564C =0945==K< <0:A<8= 3 ?>@O4:0 8 ?@5;K;CH8< <8=8<C<>< 3 ?>@O4:0 

        Rd2[mn]=round((Mxn2-Mxmn2[mx])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <0:A<8= 3 ?>@O4:0 4> ?@54K4CI53> <8=8<C<0 3 ?>@O4:0 

        

        Mxn2=Mxmn2[mx];

        Nbxn2=MxnNb2[mx];

     /*   

         datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {

        

        Qnt_Symb=FileWrite(Handle,var1," Maxmn2 ",m," mx ",mx," / ", Mxmn2[mx]," / ",Bd2[mx]," / ",Rd2[mx]," / ",

        MxnNb2[mx]," / ", Nmnd2[mx]

                     );//0?8AL 2 D09;



   if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     }; 

     };

       */

        m++;mx++;

        bu=1;bd=1;

           

        

        } 



     }

     mn3=mn;       // :>;8G5AB2> <8=8<C<>2 2 ?>@O4:0

     m3=m3+m;     // :>;8G5AB2> M:AB@5<C<>2 2 <8=8<C<0E 8 <0:A8<C<0E 2 ?>@O4:0

//------------------------------------------------------------------------------











   return(m);

  }



//----------------------------:>=5F "@5=4()---------------------------------  

  

  





//

//+------------------------------------------------------------------+

// B:@KB85 >@45@>2

int OpenOr(int Op)

  {

  //@>25@:0 E20B05B ;8 45=53

 double free_margin=AccountFreeMarginCheck(Symb,OP_BUY,Lots);

   //-- 5A;8 45=53 =5 E20B05B

   if(free_margin<0)

     {

     

      Print("Not enough money for "," ",Lots, " ", Symb, " Error code=",GetLastError());

      return(false);

     }

      //-- ?@>25@:0 ?@>H;0 CA?5H=>

// B:@KB85 >@45@>2

   while(true) // &8:; >B:@KB8O >@4.

     {

      if(Total==0 && OpOr==0) // B:@KBKE >@4. =5B  + :@8B5@89 >B:@. Buy

        {                                       // 

         RefreshRates();                        // 1=>2;5=85 40==KE

         SL=Bid - New_Stop(StopLoss)*Point;     // KG8A;5=85 SL >B:@.

         TP=Bid + New_Stop(TakeProfit)*Point;   // KG8A;5=85 TP >B:@.

         Alert(">?KB:0 >B:@KBL Buy. 6840=85 >B25B0..");

         Ticket=OrderSend(Symb,OP_BUY,Lots,Ask,2,SL,TP,"QstrBuy",Magic,0,Blue);//B:@KB85 Buy

         if(Ticket>0) // >;CG8;>AL :)

           {

           Price = Ask;

            Alert(Symbol()," "$ ",Period(),"B:@KB >@45@ Buy ?> F5=5 ",Ask,"Ticket = ",Ticket);

            Qnt_Symb=FileWrite(Handle,Symbol()," "$ ",Period(),"B:@KB >@45@ Buy ?> F5=5 ",Ask,

            "Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB, " ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

              

               Qnt_Symb1=FileWrite(Handle1,Symbol()," "$ ",Period(),"B:@KB >@45@ Buy ?> F5=5 ",Ask,

            "Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

            Or=0;

            return(Or);                             // KE>4 87 start()

           }

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

            continue;                           // >2B>@=0O ?>?KB:0

         return(Or);                                // KE>4 87 start()

        }

      if(Total==0 && OpOr==1) // B:@KBKE >@4. =5B + :@8B5@89 >B:@. Sell

        {                                       //

         RefreshRates();                        // 1=>2;5=85 40==KE

         SL=Ask + New_Stop(StopLoss)*Point;     // KG8A;5=85 SL >B:@.

         TP=Ask - New_Stop(TakeProfit)*Point;   // KG8A;5=85 TP >B:@.

         Alert(">?KB:0 >B:@KBL Sell. 6840=85 >B25B0..");

         Ticket=OrderSend(Symb,OP_SELL,Lots,Bid,2,SL,TP,"QstrSell",Magic,0,Blue);//B:@KB85 Sel

         if(Ticket>0) // >;CG8;>AL :)

           {

           Price = Bid;

            Alert(Symbol()," "$ ",Period(),"B:@KB >@45@ Sell ?> F5=5 ",Bid,"Ticket = ",Ticket);

            Qnt_Symb=FileWrite(Handle,Symbol()," "$ ",Period(),"B:@KB >@45@ Sell ?> F5=5 ",Bid,

            "Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS," ProfB=",ProfB," MxProfB=",MxProfB);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

              Qnt_Symb1=FileWrite(Handle1,Symbol()," "$ ",Period(),"B:@KB >@45@ Sell ?> F5=5 ",Bid,

            "Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS," ProfB=",ProfB," MxProfB=",MxProfB);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };





            Or=1;

            return(Or);                             // KE>4 87 start()

           }

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

            continue;                           // >2B>@=0O ?>?KB:0

         return(Or);                                // KE>4 87 start()

        }

      break;                                    // KE>4 87 while

     }

//--------------------------------------------------------------- 9 --

   return(Or);                                      // KE>4 87 start()

  }

//-------------------------------------------------------------- 10 --



//+------------------------------------------------------------------+

int CloseOr(int Cls)

  {



// 0:@KB85 >@45@>2

   while(true) // &8:; 70:@KB8O >@4.

     {

      if(Or==0 && ClOr==0) // B:@KB >@45@ Buy..

        {                                       //8 5ABL :@8B5@89 70:@

         Alert(">?KB:0 70:@KBL Buy ",Ticket,". 6840=85 >B25B0..");

         RefreshRates();                        // 1=>2;5=85 40==KE

         Ans=OrderClose(Ticket,Lots,Bid,2);      // 0:@KB85 Buy

         if(Ans==true) // >;CG8;>AL :)

           {

            Alert(Symbol()," "$ ",Period(),"0:@KB >@45@ Buy ?> F5=5 = ",Bid,"Ticket = ",Ticket,

            " ProfB=",ProfB," MxProfB=",MxProfB);

            Qnt_Symb=FileWrite(Handle,Symbol()," "$ ",Period(),"0:@KB >@45@ Buy ?> F5=5 ",Bid,

            "Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

              

               Qnt_Symb1=FileWrite(Handle1,Symbol()," "$ ",Period(),"0:@KB >@45@ Buy ?> F5=5 ",Bid,

            "Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

            Or=-1;

            ClOr=-1;

            break;                              // KE>4 87 F8:;0 70:@

           }

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

         

            Qnt_Symb=FileWrite(Handle,Symbol()," Fun_Error ",GetLastError(),"0:@KB85 >@45@0 Buy >H81:0 ",Bid,

            "Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

            continue;                           // >2B>@=0O ?>?KB:0

                   

         return(Or);                                // KE>4 87 start()

        }



      if(Or==1 && ClOr==1) // B:@KB >@45@ Sell..

        {                                       // 8 5ABL :@8B5@89 70:@

         Alert(">?KB:0 70:@KBL Sell ",Ticket,". 6840=85 >B25B0..");

         RefreshRates();                        // 1=>2;5=85 40==KE

         Ans=OrderClose(Ticket,Lots,Ask,2);      // 0:@KB85 Sell

         if(Ans==true) // >;CG8;>AL :)

           {

            Alert(Symbol()," "$ ",Period(),"0:@KB >@45@ Sell ?> F5=5 ",Ask,"Ticket = ",Ticket,

            " ProfS=",ProfS," MxProfS=",MxProfS);

            Qnt_Symb=FileWrite(Handle,Symbol()," "$ ",Period(),"0:@KB >@45@ Sell ?> F5=5 ",Ask,

            "Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS," ProfB=",ProfB," MxProfB=",MxProfB);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

               Qnt_Symb1=FileWrite(Handle1,Symbol()," "$ ",Period(),"0:@KB >@45@ Sell ?> F5=5 ",Ask,

            "Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS," ProfB=",ProfB," MxProfB=",MxProfB);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };



            Or=-1;

            ClOr=-1;

            break;                              // KE>4 87 F8:;0 70:@

           }

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

           

             Qnt_Symb=FileWrite(Handle,Symbol()," Fun_Error ",GetLastError(),"0:@KB85 >@45@0 Sell H81:0 ",Ask,

            "Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;

            if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

            

            continue;                           // >2B>@=0O ?>?KB:0

        

         return(Or);                                // KE>4 87 start()

        }

      break;                                    // KE>4 87 while

     }



   return(Or);

  }

//+------------------------------------------------------------------+



//-------------------------------------------------------------- 10 --

int Fun_Error(int Error) // $-8O >1@01>B >H81>:

  {

   switch(Error)

     {                                          // @5>4>;8<K5 >H81:8            

      case  4: Alert("">@3>2K9 A5@25@ 70=OB. @>1C5< 5IQ @07..");

      Sleep(3000);                           // @>AB>5 @5H5=85

      return(1);                             // KE>4 87 DC=:F88

      case 135:Alert("&5=0 87<5=8;0AL. @>1C5< 5IQ @07..");

      RefreshRates();                        // 1=>28< 40==K5

      return(1);                             // KE>4 87 DC=:F88

      case 136:Alert("5B F5=. 4Q< =>2K9 B8:..");

      while(RefreshRates()==false)           // > =>2>3> B8:0

         Sleep(1);                           // 045@6:0 2 F8:;5

      return(1);                             // KE>4 87 DC=:F88

      case 137:Alert("@>:5@ 70=OB. @>1C5< 5IQ @07..");

      Sleep(3000);                           // @>AB>5 @5H5=85

      return(1);                             // KE>4 87 DC=:F88

      case 146:Alert(">4A8AB5<0 B>@3>2;8 70=OB0. @>1C5< 5IQ..");

      Sleep(500);                            // @>AB>5 @5H5=85

      return(1);                             // KE>4 87 DC=:F88

                                             // @8B8G5A:85 >H81:8

      case  2: Alert("1I0O >H81:0.");

      return(0);                             // KE>4 87 DC=:F88

      case  5: Alert("!B0@0O 25@A8O B5@<8=0;0.");

      Work=false;                            // >;LH5 =5 @01>B0BL

      return(0);                             // KE>4 87 DC=:F88

      case 64: Alert("!G5B 701;>:8@>20=.");

      Work=false;                            // >;LH5 =5 @01>B0BL

      return(0);                             // KE>4 87 DC=:F88

      case 133:Alert("">@3>2;O 70?@5I5=0.");

      return(0);                             // KE>4 87 DC=:F88

      case 134:Alert("54>AB0B>G=> 45=53 4;O A>25@H5=8O >?5@0F88.");

      return(0);                             // KE>4 87 DC=:F88

      default: Alert(">7=8:;0 >H81:0 ",Error); // @C385 20@80=BK   

      return(0);                             // KE>4 87 DC=:F88

     }

  }

//-------------------------------------------------------------- 11 --

//-------------------------------------------------------------- 11 --

int New_Stop(int Parametr) // @>25@:0 AB>?-?@8:.

  {

   int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// 8=8<. 48AB0=F8O

   if(Parametr<Min_Dist) // A;8 <5=LH5 4>?CAB.

     {

      Parametr=Min_Dist;                        // #AB0=>28< 4>?CAB.

      Alert("#25;8G5=0 48AB0=F8O AB>?-?@8:070.");

     }

   return(Parametr);                            // >72@0B 7=0G5=8O

  }

//-------------------------------------------------------------- 12 --



int FileTest()

  {

   Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//B:@KB85 D09;0

   if(Handle==-1) // 5C40G0 ?@8 >B:@KB88 D09;0

     {

      Alert("H81:0 ?@8 >B:@KB88 D09;0. ",// !>>1I5=85 >1 >H81:5 

            ">7<>6=>, D09; 70=OB 4@C38< ?@8;>65=85<");



     }



   return(Handle);

  }

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+



int FileTest1()

  {

   Handle1=FileOpen(File_Name1,FILE_CSV|FILE_WRITE,";");//B:@KB85 D09;0

   if(Handle1==-1) // 5C40G0 ?@8 >B:@KB88 D09;0

     {

      Alert("H81:0 ?@8 >B:@KB88 D09;0. ",File_Name1,// !>>1I5=85 >1 >H81:5 

            ">7<>6=>, D09; 70=OB 4@C38< ?@8;>65=85<");

return(Handle1);



      

     }



   return(Handle1);

  }

//+------------------------------------------------------------------+

int FileTest2()

  {

   Handle2=FileOpen(File_Name2,FILE_CSV|FILE_WRITE,";");//B:@KB85 D09;0

   if(Handle==-1) // 5C40G0 ?@8 >B:@KB88 D09;0

     {

      Alert("H81:0 ?@8 >B:@KB88 D09;0. ",File_Name2,// !>>1I5=85 >1 >H81:5 

            ">7<>6=>, D09; 70=OB 4@C38< ?@8;>65=85<");

return(Handle2);



      

     }



   return(Handle2);

  }

//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---