Time_Open_Trail_2_2

Author: Copyright 2020 Qstr © 2020
Orders Execution
Checks for the total of open ordersIt can change open orders parameters, due to possible stepping strategyIt automatically opens orders when conditions are reached
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Time_Open_Trail_2_2
ÿþ//+------------------------------------------------------------------+

//|                                              Time_Open_Trail.mq4 |

//|                                                      Qstr © 2020 |

//|                                                  http://qstr.ru/ |

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

#property copyright "Copyright 2020 Qstr © 2020"

#property link      "http://qstr.ru"

#property version   "1.00"

#property strict



extern string vline_name="time";

extern double Lots=1; //@01>G89 ;>B

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

extern int slippage =2;  //C@>25=L 4>?CAB8<>3> ?@>A:0;L7K20=8O - @5:2>B0 2 ?C=:B0E



extern int TakeProfit=500; //B59: ?@>D8B 2 ?C=:B0E

extern int StopLoss=200; //AB>? ;>AA 2 ?C=:B0E

extern int  Open_Level_St=100; //C@>25=L >B40;5=8O >B F5=K, =0 :>B>@>< AB028< >B;>65==K5 >@45@0

extern int  Open_Level_Lim=200; //C@>25=L >B40;5=8O >B F5=K, =0 :>B>@>< AB028< ;8<8B=K5 >@45@0

extern int Tral_Stop=200;                        // 8AB. ?@5A;54>20=8O

extern int Tral_Profit=100;                        // 8AB. >B>42830=8O ?@>D8B0

extern double Ksl = 0.2; // >MDD8F85=B C<5=LH5=8O StopLoss, ?> <5@5 ?@81;865=8O : TakeProfit

// ?> D>@<C;5 4;O 09 SL = Bid - (Tral - 0.2(Bid - OrderOpenPrice()))



extern datetime Open_Time=D'03.01.2019 13:00:00'; //2@5<O >B:@KB8O >@45@>2, 4>;6=> 1KBL 1>;LH5 B5:CI53> 2@5<5=8.

extern int time_op = 600; // @5<O 687=8 =5>B:@KB>3> >@45@0 2 <8=CB0E, 4>;6=> 1KBL 1>;55 11 <8=CB.



extern int Magic=5345; //<038G5A:>5 G8A;> =0H8E >@45@>2



extern bool Open_Buy=false;  //0/5B @01>BK A buy->@45@0<8

extern bool Open_Sell=false; //0/5B @01>BK A sell->@45@0<8

extern bool Open_Buy_Limit=false;  //0/5B @01>BK A buy limit->@45@0<8

extern bool Open_Sell_Limit=false; //0/5B @01>BK A sell limit->@45@0<8

extern bool Open_Buy_Stop=True;  //0/5B @01>BK A buy stop->@45@0<8

extern bool Open_Sell_Stop=True; //0/5B @01>BK A sell stop->@45@0<8



datetime Close_Time=D'05.01.2019 15:00'; //2@5<O 70:@KB8O =5>B:@KBKE >@45@>2, ?5@5=07=0G05BAO time_op

datetime tx, tcl; //B5E=8G5A:85  ?5@5<5==K5 2@5<5=8



double

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 >B:@KB8O 2K1@0==>3> >@45@0

ClosePrice,                      // &5=0 70:@KB8O 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,  MnProfB,               // 0:A8<0;L=9 ?@>D8B C1KB>: 109 ?@8 >B:@KB>< >@45@5 109

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

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

MinBid = 1000, MaxBid = 0,       // 8=8<0;L=0O  8 <0:A8<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

;



string

var1, Maxtm,Mintm,                // 2@5<O 2 B5:AB>2>< 2845, 2@5<O <0:A8<0;L=>3> 8 <8=8<0;L=>3> 10@0 ?> F5=5 70:@KB8O

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



int

flagMxn=-1,                         // D;03 ?>A;54=53> ?>2KH5=8O 8;8 ?>=865=8O <0:A, <8= F5=K 1 ?>2KH5=85, 0 ?>=865=85

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

Total=0,                           // >;8G5AB2> @K=>G=KE >@45@>2 2 >:=5

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

Ticket=0,                          // "8:5B >@45@0 @K=>G=>3>, >= <>65B 1KBL B>;L:> >48=

Ticket0=0,                          // D;03 "8:5B0 >@45@0 09

Ticket1=0,                          // D;03 "8:5B0 >@45@0 !5;;

Ticket2=0,                          // D;03 "8:5B0 >@45@0 109;8<8B

Ticket3=0,                          // D;03 "8:5B0 >@45@0 A5;;;8<8B

Ticket4=0,                          // D;03 "8:5B0 >@45@0 109AB>?

Ticket5=0,                          // D;03 "8:5B0 >@45@0 A5;;AB>?



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;;

OrBuySt=-1,                      // D;03 >B:@KB8O >B;>65==KE >@45@>2 Buy

OrSellSt=-1,                     // D;03 >B:@KB8O >B;>65==KE >@45@>2 !5;;

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



bool

Ans  =false,                     // B25B A5@25@0 ?>A;5 70:@KB8O, >B:@KB8O, <>48D8:0F88 >@45@0

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

End=false,                       // @8B5@89 7025@H5=8O @01>BK, ?>A;5 70:@KB8O @K=>G=>3> >@45@0

OpnOr=false,                     // $;03 2KAB02;5=8O >@45@>2

OpnMarketOrder=false,            // $;03 >1@07>20=8O @K=>G=>3> >@45@0

AlertEnd=false,                  // $;03 ;5@B0 7025@H5=8O @01>BK, ?>A;5 70:@KB8O @K=>G=>3> >@45@0

AlertWork=false;                 // $;03 ;5@B0 :@8B8G5A:>9 >H81:8, GB> 1K =5 ?;>48BL 0;5@BK =0 :064>< B8:5



bool sel=false;                  // B25B OrderSelect

bool Modify=false;

string Text="";



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

//| expert initialization function                                   |

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

int OnInit()

  {

//---



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



   if(Open_Time != D'03.01.2019 13:00:00' && Open_Time < tx)

     {

      Work = false;

      Alert("@5<O >B:@KB8O <5=LH5 B5:CI53>. -:A?5@B =5 @01>B05B.");

     }

   if(time_op < 11)

     {

      Work = false;

      Alert("@5<O 687=8 >B;>65==KE >@45@>2 4>;6=> 1KBL 1>;55 11 <8=CB. -:A?5@B =5 @01>B05B.");

     }

   if(Open_Sell==True && Open_Buy==True)

     {

      Work = false;

      Alert("4=>2@5<5==>5 >B:@KB85 @K=>G=KE >@45@>2 Sell 8 Buy =5 @07@5H5=>. -:A?5@B =5 @01>B05B.");

     }



   if((Open_Sell==True && (Open_Sell_Limit==True || Open_Sell_Stop==True ||Open_Buy_Limit==True  || Open_Buy_Stop==True))

      || (Open_Buy==True && (Open_Sell_Limit==True || Open_Sell_Stop==True ||Open_Buy_Limit==True  || Open_Buy_Stop==True)))

     {

      Work = false;

      Alert("4=>2@5<5==>5 >B:@KB85 @K=>G=>3> >@45@0 8 >B;>65==>3> 8;8 ;8<8B=>3> =5 @07@5H5=>. -:A?5@B =5 @01>B05B.");

     }



   Countinit();// DC=:F8O ?>4AG5B0 >B:@KBKE, >B;>65==KE >@45@>2 8 ?>8A: A =0H8< <038:, 5A;8 5ABL, =5 @01>B05<



   if(Open_Time== D'03.01.2019 13:00:00') // ;O ?@>25@:8 2 0@:5B5 =07=0G5=85 2@5<5=8 >B:@KB8O >B;>65==KE >@45@>2

     {Open_Time = tx+120;}



   Symb=Symbol();

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

   Close_Time = Open_Time + 60*time_op; // @5<O 70:@KB8O >B;>65==KE, ;8<8B=KE =5>B:@KBKE >@45@>2.

//---

   return(INIT_SUCCEEDED);

  }

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

//| Expert initialization function                                   |

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

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

//| Expert deinitialization function                                 |

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

void OnDeinit(const int reason)

  {

//---



  }

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

//| Expert tick function                                             |

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

void OnTick()    // $C=:F8O start() @0=LH5 =07K20;0AL

  {



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

     {

      if(AlertWork==false)   // A;8 ;5@B0 5I5 =5 1K;>

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

      return;

     }                                  // KE>4 87 start()



   if(End==true) //  01>B0 7025@H5=0

     {

      if(AlertEnd==false)   // A;8 ;5@B0 5I5 =5 1K;>

        {  Alert(" 01>B0 M:A?5@B0 7025@H5=0. @81K;L/C1KB>: = ",OrderProfit()); AlertEnd=true; }

      return;

     }                                        // KE>4 87 start()



   if(Or==0 || Or==1)  // 5A;8 @K=>G=K9 >@45@ 1K; 2KAB02;5= 8 602

     {

      //      Alert(">48D8:0F8O 1 0G0;0AL", Text,Ticket,". 4Q< >B25B..",OrderClosePrice());

      //      Alert("@>25@O5< 70:@KB85 @K=>G=>3> >@45@0 8 >48D8F8@C5< 53> 5A;8 =C6=> ");

      if(OrderSelect(Ticket, SELECT_BY_TICKET)==true)

        {

         if(OrderCloseTime()==0)              // A;8 =0H @K=>G=K9 >@45@ =5 70:@KB

           {

            //           Alert(">48D8:0F8O 0G0;0AL", Text,Ticket,". 4Q< >B25B..");

            //           Alert("0H @K=>G=K9 >@45@ 682, >48D8F8@C5< 53> 5A;8 =C6=> ");

            ModifyTral();

            return;

           }

         if(OrderCloseTime()!=0)              // A;8 =0H @K=>G=K9 >@45@ 70:@K;AO

           {

            End=true;

            Alert("0H @K=>G=K9 >@45@ 70:@K;AO.  01>B0 !>25B=8:0 7025@H5=0 ",

                  " !2>? = ", OrderSwap(), " ><8AA8O = ", OrderCommission());

            return;

           }

        }

      else

         Alert("OrderSelect() =0H53> @K=>G=>3> >@45@0 25@=C; >H81:C - ",GetLastError());

     }





//---

// 0:><5=B8@>20=> 2KAB02;5=85 2@5<5=8 25@B8:0;L=>9 ;8=859. > 2KAB02;5=8O M:A?5@B0 8=8N =0720BL time



//  if(ObjectFind(vline_name)==-1)return(0);

//  datetime t=ObjectGet(vline_name,OBJPROP_TIME1);

//   if(t/60==TimeCurrent()/60 )



   if((Open_Time)/60 == TimeCurrent()/60 && OpnOr==false)

     {

      Alert("@5<O 2KAB02;5=8O >@45@>2 -  ") ;

      OpenOrder();

      OpnOr=true;

     }



   if(OpnOr==true)

     {

      CountMarketOrder();// DC=:F8O ?>4AG5B0 @K=>G=KE >@45@>2 A =0H8< <038:

     }

   return;

  }

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



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

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) // 8 >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                 |

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



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

//|                                                                  |

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

bool ModifyTral()                                     // "@59;8=3 >@45@0

  {

// Alert(">48D8:0F8O 0G0;0AL", Text,Ticket,". 4Q< >B25B..");

//------------------------------------------------------ 3 --

   while(true)                            // &8:; <>48D8:0F88

     {

      double TSt=New_Stop(Tral_Stop) ;                // 5A;8 B@0; AB>?0 <5=LH5 4>?CAB8<>3>, C25;8G8< 53>.

      double TS=New_Stop(Tral_Stop);                  // 8=0<8G5A:>5 7=0G5=85 B@59;8=3AB>?0

      double TT=New_Stop(Tral_Profit) ;                // 5A;8 B@0; ?@>D8B0 <5=LH5 4>?CAB8<>3>, C25;8G8< 53>.

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

      Modify=false;                  // 5 =07=0G5= : <>48D8

      switch(Tip)                         // > B8?C >@45@0

        {

         case 0 :                         // @45@ Buy

            TS = round((TSt-Ksl*(Bid-Price)*point));

            TS=New_Stop(TS) ;                         // @>25@O5< =0 <8=8<0;L=> 4>?CAB8<K5 7=0G5=8O



            if(NormalizeDouble(SL,Digits)<  // A;8 =865 65;05<.

               NormalizeDouble(Bid-(TS*Point),Digits)) // 5A;8 SL >:065BAO <5=LH5 4>?CAB8<>3>, C25;8G8< 53>.

              {

               SL=Bid-(TS*Point);           // B> <>48D8F8@C5< 53>

               Alert("TS = ",TS," Bid -  Price =",(Bid-Price)*point);

               Text="Buy ";        // "5:AB 4;O Buy

               Modify=true;               // 07=0G5= : <>48D8.

               TP    =OrderTakeProfit();

               if(TP<Bid+TT*Point)

                  TP=Bid+TT*Point;

              }

            break;                        // KE>4 87 switch

         case 1 :                         // @45@ Sell



            TS = round((TSt-Ksl*(Price-Ask)*point));

            TS=New_Stop(TS) ;

            if(NormalizeDouble(SL,Digits)>  // A;8 2KH5 65;05<.

               NormalizeDouble(Ask+(TS*Point),Digits)

               || NormalizeDouble(SL,Digits)==0)//8;8 @02=> =C;N

              {

               SL=Ask+(TS*Point);           // B> <>48D8F8@C5< 53>

               // 5A;8 SL >:065BAO <5=LH5 4>?CAB8<>3>, C25;8G8< 53>.

               Alert("TS = ",TS," Bid -  Price =",(Bid-Price)*point);

               Text="Sell ";              // "5:AB 4;O Sell

               Modify=true;               // 07=0G5= : <>48D8.

               TP    =OrderTakeProfit();

               if(TP>Ask-TT*Point)

                  TP=Ask-TT*Point;



              }

        }                                 // >=5F switch

      if(Modify==false)                   // A;8 53> =5 <>48D8

         break;                           // KE>4 87 while

      //--------------------------------------------------- 5 --

      //     TP    =OrderTakeProfit();    // TP 2K1@0==>3> >@4. 70:><<5=B8@>20=0, B.:. C =0A 48=0<8G5A:89 B@59;8=3?@>D8B

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

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



      Alert(">48D8:0F8O ", Text,Ticket,". 4Q< >B25B..");

      Ans=OrderModify(Ticket,Price,SL,TP,0);//>48D8 53>!

      //--------------------------------------------------- 6 --

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

        {

         Alert("@45@ ",Text,Ticket," <>48D8F8@>20=:)");

         break;                           // 7 F8:;0 <>48D8.

        }

      //--------------------------------------------------- 7 --

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

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

      break;                              // 7 F8:;0 <>48D8.

     }                                    // >=5F F8:;0 <>48D8.

//------------------------------------------------------ 8 --



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

   return(Modify);                                     // KE>4 87 ModifyTral()

  }







//-------------------------------------------------------------- 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 129:

         Alert("5?@028;L=0O F5=0. @>1C5< 5IQ @07..");

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

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

      case 130:

         Alert("5?@028;L=K5 AB>?K. @>1C5< 5IQ @07.");

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

         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

      case 139:

         Alert("@45@ 701;>:8@>20= 8 C65 >1@010BK205BAO");

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

      case 4109:

         Alert(" ">@3>2;O =5 @07@5H5=0. 5>1E>48<> 2:;NG8BL >?F8N - 07@5H8BL A>25B=8:C B>@3>20BL- 2 A2>9AB20E M:A?5@B0");

         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 --

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

  {

   double 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 8;8 F5=K >B:@KB8O >B;>65==KE >@45@>2.");

     }

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

  }

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



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

//|                                                                  |

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

void OpenOrder() // @0AG5B AB>?;>AA, B59?@>D8B

  {





   if(Open_Buy)

     {

      while(true) // &8:; >B:@KB8O >@45@0 109.

        {

         if(Ticket0==0) // B:@KBKE >@4. =5B +

           {

            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..");

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

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

              {

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

               Or=0;

               break;

              }

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

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

           }

         break;                                    // KE>4 87 while

        }



     }



   if(Open_Sell)

     {

      while(true) // &8:; >B:@KB8O >@45@0 Sell.

        {

         if(Ticket1==0) // B:@KBKE >@4. =5B +

           {

            // :@8B5@89 >B:@. Buy

            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..");

            Ticket1=OrderSend(Symb,OP_SELL,Lots,Bid,slippage,SL,TP,"QstrSell",Magic,0,Blue);//B:@KB85 Sell

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

              {

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

               Or=1;

               break;

              }

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

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

           }

         break;                                    // KE>4 87 while

        }





     }



   if(Open_Buy_Limit)

     {



      while(true) // &8:; >B:@KB8O >@45@0 BuyLimit

        {

         if(Ticket2==0) // B:@KBKE >@4. =5B

           {

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

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

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

            Price=Ask-New_Stop(Open_Level_Lim)*Point;

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

            Ticket2=OrderSend(Symb, OP_BUYLIMIT,Lots,Price,slippage,SL,TP,"QstrBuyLimit",Magic,Close_Time,Blue);//B:@KB85 BuyLimit

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

              {

               Alert(Symbol()," "$ ",Period(),"B:@KB >@45@ BuyLimit ?> F5=5 ",Price,"Ticket2 = ",Ticket2);

               Or=2;

               break;

              }

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

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

           }

         break;                                    // KE>4 87 while

        }





     }



   if(Open_Sell_Limit)

     {









      while(true) // &8:; >B:@KB8O >@45@0 SellLimit.

        {

         if(Ticket3==0) // B:@KBKE >@4. =5B +

           {

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



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

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

            Price=Bid+New_Stop(Open_Level_Lim)*Point;

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

            Ticket3=OrderSend(Symb, OP_SELLLIMIT,Lots,Price,slippage,SL,TP,"QstrSellLimit",Magic,Close_Time,Blue);//B:@KB85 SellLimit.

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

              {

               Alert(Symbol()," "$ ",Period(),"B:@KB >@45@ SellLimit ?> F5=5 ",Price,"Ticket3 = ",Ticket3);

               Or=3;

               break;

              }

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

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

           }

         break;                                    // KE>4 87 while

        }



     }



   if(Open_Buy_Stop)

     {



      while(true) // &8:; >B:@KB8O >@45@0 BuyStop.

        {

         if(Ticket4==0) // B:@KBKE >@4. =5B +

           {

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

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

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

            Price=Ask+New_Stop(Open_Level_St)*Point;



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

            Ticket4=OrderSend(Symb, OP_BUYSTOP,Lots,Price,slippage,SL,TP,"QstrBuyStop",Magic,Close_Time,Blue);//B:@KB85 BuyStop.

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

              {

               Alert(Symbol()," "$ ",Period(),"B:@KB >@45@ BuyStop ?> F5=5 ",Price,"Ticket4 = ",Ticket4);

               Or=4;

               break;

              }

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

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

           }

         break;                                    // KE>4 87 while

        }





     }

   if(Open_Sell_Stop)

     {



      while(true) // &8:; >B:@KB8O >@45@0 SellStop.

        {

         if(Ticket5==0) // B:@KBKE >@4. =5B +

           {

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

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

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

            Price=Bid-New_Stop(Open_Level_St)*Point;



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

            Ticket5=OrderSend(Symb, OP_SELLSTOP,Lots,Price,slippage,SL,TP,"QstrSellStop",Magic,Close_Time,Blue);//B:@KB85 SellStop

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

              {

               Alert(Symbol()," "$ ",Period(),"B:@KB >@45@SellStop ?> F5=5 ",Price,"Ticket5 = ",Ticket5);

               Or=5;

               break;

              }

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

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

           }

         break;                                    // KE>4 87 while

        }





     }





   return;

  }

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



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

//|                                                                  |

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

void DeleteOrder()

  {

   if(Ticket!=Ticket2 && Ticket2!=0)

     {

      while(true)                                 // &8:; C40;5=8O =5>B:@KB>3> >@4.

        {

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

         Alert(">?KB:0 C40;8BL >@45@ BuyLimin ",Ticket2,". 6840=85 >B25B0..");

         Ans=OrderDelete(Ticket2);             // #40;5=85 >@45@0

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

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

           {

            Alert("#40;Q= >@45@ BuyLimin ",Ticket2);

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

           }

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

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

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

         break;                                 // KE>4 87 while

        }

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



   if(Ticket!=Ticket3 && Ticket3!=0)

     {

      while(true)                                 // &8:; C40;5=8O =5>B:@KB>3> >@4.

        {

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

         Alert(">?KB:0 C40;8BL >@45@ SellLimit ",Ticket3,". 6840=85 >B25B0..");

         Ans=OrderDelete(Ticket3);             // #40;5=85 >@45@0

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

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

           {

            Alert("#40;Q= >@45@ SellLimit ",Ticket3);

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

           }

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

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

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

         break;                                 // KE>4 87 while

        }

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



   if(Ticket!=Ticket4 && Ticket4!=0)

     {

      while(true)                                 // &8:; C40;5=8O =5>B:@KB>3> >@4.

        {

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

         Alert(">?KB:0 C40;8BL >@45@ BuyStop ",Ticket4,". 6840=85 >B25B0..");

         Ans=OrderDelete(Ticket4);             // #40;5=85 >@45@0

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

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

           {

            Alert("#40;Q= >@45@ BuyStop ",Ticket4);

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

           }

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

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

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

         break;                                 // KE>4 87 while

        }



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



   if(Ticket!=Ticket5 && Ticket5!=0)

     {

      while(true)                                 // &8:; C40;5=8O =5>B:@KB>3> >@4.

        {

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

         Alert(">?KB:0 C40;8BL >@45@ SellStop ",Ticket5,". 6840=85 >B25B0..");

         Ans=OrderDelete(Ticket5);             // #40;5=85 >@45@0

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

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

           {

            Alert("#40;Q= >@45@ SellStop ",Ticket5);

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

           }

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

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

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

         break;                                 // KE>4 87 while

        }



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

  }



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



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

//|                                                                  |

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

int CountMarketOrder()

  {

   if(Ticket0!=0)

     {

      Ticket=Ticket0;

      SelectOrder(Ticket);

      DeleteOrder();

      return(Ticket);

     }

   if(Ticket1!=0)

     {

      Ticket=Ticket1;

      SelectOrder(Ticket);

      DeleteOrder();

      return(Ticket);

     }

   if(Ticket2!=0)

     {

      sel=OrderSelect(Ticket2, SELECT_BY_TICKET);

      if(OrderType()==0)

        {

         Ticket=Ticket2;

         SelectOrder(Ticket);

         DeleteOrder();

         return(Ticket);

        }

     }

   if(Ticket3!=0)

     {

      sel=OrderSelect(Ticket3, SELECT_BY_TICKET);

      if(OrderType()==1)

        {

         Ticket=Ticket3;

         SelectOrder(Ticket);

         DeleteOrder();

         return(Ticket);

        }

     }

   if(Ticket4!=0)

     {

      sel=OrderSelect(Ticket4, SELECT_BY_TICKET);

      if(OrderType()==0)

        {

         Ticket=Ticket4;

         SelectOrder(Ticket);

         DeleteOrder();

         return(Ticket);

        }

     }

   if(Ticket5!=0)

     {

      sel=OrderSelect(Ticket5, SELECT_BY_TICKET);

      if(OrderType()==1)

        {

         Ticket=Ticket5;

         SelectOrder(Ticket);

         DeleteOrder();

         return(Ticket);

        }

     }

   return(Ticket);

  }





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

//|                                                                  |

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

int SelectOrder(int Tickets)

  {

   sel=OrderSelect(Tickets, SELECT_BY_TICKET);

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

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

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

//   ClosePrice = OrderClosePrice();

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

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

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

   Alert("0H @45@ "8:5B = ", Ticket,""8? = ", Tip,OrderType(),"Ask",Ask,"&5=0 >B:@KB8O",OrderOpenPrice());



   if(Tip==OP_BUY)

      Or=0;



   if(Tip==OP_SELL)

      Or=1;



   if(Ticket == Ticket2)

     {  Alert(" K=>G=K< @45@>< AB0; >@45@ BuyLimit, "@0;8< 53>");}

   if(Ticket == Ticket3)

     { Alert(" K=>G=K< @45@>< AB0; >@45@ SellLimit, "@0;8< 53>");}

   if(Ticket == Ticket4)

     { Alert(" K=>G=K< @45@>< AB0; >@45@ BuyStop, "@0;8< 53>");}

   if(Ticket == Ticket5)

     { Alert(" K=>G=K< @45@>< AB0; >@45@ SellStop, "@0;8< 53>");}

   Work=true;

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



  }





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

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 ---