Display orders 1.1

Author: KasQad
Orders Execution
It Closes Orders by itself Checks for the total of open orders
0 Views
0 Downloads
0 Favorites
Display orders 1.1
ÿþ//+------------------------------------------------------------------+

//|                                               display orders.mq4 |

//|                                                           KasQad |

//|                                                   KasQad@mail.ru |

//|                                            https://vk.com/kasqad |

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

#property copyright "KasQad"

#property link      "https://vk.com/kasqad"

#property version   "1.1"

#property description "-:A?5@B 4;O >B>1@065=8O >B:@KBKE A45;>: =0 3@0D8:5, A 2>7<>6=>ABLN 8E 70:@KB8O\n"

#property description "KasQad@mail.ru"

#property description "\n>A;54=85 87<5=5=8O: 23.01.2020"



#property strict



extern bool   timebarclose          =  true;          //K2>48BL ;8 2@5<O 4> 70:@KB8O 10@0

extern bool   show_valuta           =  true;          //>:07K20BL 7=0: 20;NBK    

extern bool   show_op               =  true;          //>:07K20BL >B;>65==K5 >@45@0

extern int    time_update           =  100;           //=B5@20; 2K7>20 B09<5@0 2 <A 

extern int    giSlippage            =  0;             //@>A:0;L7K20=85 (0 - 02B>) 

extern string font_name             =  "Tahoma";      //(@8DB

extern int    font_size1            =  11;            // 07<5@ H@8DB0 10;0=A0

extern int    font_size2            =  11;            // 07<5@ H@8DB0 AC<<K >@45@>2 =0 3@0D8:5

extern int    font_size3            =  11;            // 07<5@ H@8DB0 A?8A:0 ?>78F89

extern int    labs_y_space          =  16;            //=B5@20; Y <564C <5B:0<8

extern int    labs_corner           =  1;             //#3>; ?@82O7:8 B5:AB>2KE <5B>: (1-4)

extern int    labs_xdist            =  5;             // 0AAB>O=85 X >B 3@0=8FK >:=0

extern int    labs_ydist            =  12;            // 0AAB>O=85 Y >B 3@0=8FK >:=0

extern color  color_balance_profit  =  Red;           //&25B ?@>D8B=KE ?>78F89 AB@>:8 10;0=A0 

extern color  color_balance_loss    =  Green;         //&25B C1KB>G=KE ?>78F89 AB@>:8 10;0=A0 

extern color  color_profit          =  DarkBlue;      //&25B ?@>D8B=KE ?>78F89

extern color  color_loss            =  FireBrick;     //&25B C1KB>G=KE ?>78F89

extern color  color_nonactive       =  Gray;          //&25B ?>78F89 A 4@C3>3> 3@0D8:0

extern color  color_op              =  DarkOrchid;    //&25B >B;>65==KE >@45@>2

extern string target_obj_name       =  "target";      //<O >1J5:B0-F5;8

extern bool   target_obj_flag       =  false;         //B>1@060BL @0AG5BK ?@8 4>AB865=88 F5;8 ?> C<>;G0=8N





int            lab_n=4;                //A :0:>9 AB@>:8 =0G8=0NBAO <5B:8 >@45@>2 - A<5I5=85

const string   prefix="DO_";           //?@5D8:A A>25B=8:0 (Display Orders) 4;O 2A5E <5B>: 8 :=>?>:, =C65= B0: 65 4;O C40;5=8O >1J5:B>2 

const string   buttonID=prefix+"but";  //8<O :=>?:8 DO_but123456

const string   labelID=prefix+"lab";   //8<O <5B:8  DO_lab123456

string         valuta;                 //?5@5<5==0O 4;O A8<2>;0 20;NBK

double         Price[2];               //<0AA82 4;O GetMarketInfo()

bool           show_lab=true;          //A:@K20BL 8;8 ?>:07K20BL A?8A>: >@45@>2 ?> I5;G:C ?> >A=>2=>9 <5B:5 A >1I59 AC<<>9 >@45@>2







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

//| Expert initialization function                                   |

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

void init()

   {

   EventSetMillisecondTimer(time_update);   //8=B5@20; 2K7>20 B09<5@0//EventSetTimer(1);

   delall();   //C40;5=85 2A5E <5B>: 8 :=>?>: A 3@0D8:0

   

   if(show_valuta)  //4>102;5=85 A8<2>;0 20;NBK 45?>78B0

      {

      valuta=AccountCurrency();

      if(valuta=="RUR") valuta=" @C1";

      if(valuta=="USD") valuta=" $";

      } else /* {valuta=AccountCurrency();}// */  {valuta="";}

   }

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



  

  

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

//| Expert deinitialization function                                 |

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

void deinit()

  {

   delall();   //C40;5=85 2A5E <5B>: 8 :=>?>: A 3@0D8:0 ?> ?@5D8:AC A>25B=8:0

  }

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



  



//--- #   $ !% "     $!#  !"  ----------------------

void delall()

   {

   //5A;8 ?5@2K5 3 A8<2>;0 8<5=8 >1J5:B0 A>>B25BAB2CNB ?@5D8:AC >1J5:B>2 A>25B=8:0, B> >=8 C40;ONBAO (?@5D8:A ?> C<>;G0=8N: DO_)

   for(int i=ObjectsTotal()-1; i>=0; i--) if (prefix==StringSubstr(ObjectName(i), 0, StringLen(prefix))) ObjectDelete(ObjectName(i));

   }

//--- END -----------------------------------------------------------------------------------------







//--- #' +%     /  +"/ -----------------------------------------------------

bool GetMarketInfo()

   {

   RefreshRates();

   Price[0]=NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),Digits);

   Price[1]=NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),Digits);

   double dPoint=MarketInfo(OrderSymbol(),MODE_POINT);

   if(dPoint==0) return(false);

   giSlippage=int((Price[0]-Price[1])/dPoint);

   if(Digits==3 || Digits==5) giSlippage=giSlippage*10;

   Print(Price[0]);

   Print(Price[1]);

   return(Price[0]>0.0 && Price[1]>0.0);

   }

//--- END -----------------------------------------------------------------------------------------







//---  " "/  #  "# -------------------------------------------------------

void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)

   {

   if(id==CHARTEVENT_OBJECT_CLICK)                                                        //?@>25@8< A>1KB85 =0 =060B85 :=>?:8 <KH:8 

      {

      string but_number_order=StringSubstr(sparam,StringLen(buttonID),0);                 //872;5:05< 87 =0720=8O :=>?:8 =><5@ >@45@0 4;O 40;L=59H53> 70:@KB8O DO_but123456

      if(sparam==buttonID+but_number_order)                                               //5A;8 >1J5:B ?> :>B>@><C :;8:=C;8 8<55B 8<O buttonID+=><5@ >@45@0, B>..

         {

         Print(OrderSelect(StrToInteger(but_number_order),SELECT_BY_TICKET,MODE_TRADES)); //2K18@05< =C6=K9 >@45@ ?> =><5@C B8:5B0

         GetMarketInfo();                                                                 //?>;CG05< 8=D>@<0F8N ?> >@45@C

         if (OrderType()>=2) Print(OrderDelete(OrderTicket()));                           //5A;8 B8? >@45@>=2 B.5. >B;>65==K9 B> C40;O5< 53> 

            else Print(OrderClose(OrderTicket(),OrderLots(),Price[1-OrderType()],10));    //5A;8 >@45@ >B:@KBK9 B> 70:@K205< 53>

         Print("OrderTicket: "+IntegerToString(OrderTicket(),0));

         }

         

      //5A;8 >1J5:B 8<55B 8<O labelID0 (?5@20O AB@>:0 A >1I59 8=D>@<0F859 ?> AG5BC) - A:@K20BL 8;8 ?>:07K20BL A?8A>: >@45@>2 ?> I5;G:C ?> >A=>2=>9 <5B:5 A >1I59 AC<<>9 >@45@>2

      if(sparam==labelID+"0") show_lab=show_lab==true?false:true;      

            

      string _lab_name=StringSubstr(sparam,0,StringLen(labelID));                            //5A;8 :;8:=C;8 ?> >1J5:BC - 872;5:05< ?@5D8:A+8<O <5B:8 

      int _lab_id=StrToInteger(StringSubstr(sparam,StringLen(labelID),0));                   //5A;8 :;8:=C;8 ?> >1J5:BC - 872;5:05< =><5@ <5B:8

      if(_lab_name==labelID && _lab_id>0) target_obj_flag=target_obj_flag==true?false:true;  //5A;8 :;8:=C;8 ?> <5B:5 A id>0, B.5.  AB@>:0 10;0=A0 - A:@K20BL 8;8 ?>:07K20BL @0AG5BK ?@81K;8 ?> 3@0D. >1J5:B0<-F5;59                                     



      if(sparam==buttonID+"99999") //5A;8 =060B0 :=>?:0 C40;5=8O 2A5E >@45@>2 =0 "#) 3@0D8:5, B>..

         for(int i=OrdersTotal()-1; i>=0; i--) //?5@518@05< 2A5 >@45@0, 8 C40;O5< >B:@KBK5 =0 3@0D8:5

            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && GetMarketInfo() && OrderSymbol()==Symbol() && 

               !OrderClose(OrderTicket(),OrderLots(),Price[1-OrderType()],giSlippage)) Print("H81:0 - ",GetLastError());

               

      if(sparam==buttonID+"88888") //5A;8 =060B0 :=>?:0 C40;5=8O !% >@45@>2 =0 !% 3@0D8:0E, B>..

         for(int i=OrdersTotal()-1; i>=0; i--) //?5@518@05< 2A5 >@45@0, 8 C40;O5< >B:@KBK5 =0 3@0D8:5

            if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES) && GetMarketInfo() && 

               !OrderClose(OrderTicket(),OrderLots(),Price[1-OrderType()],giSlippage)) Print("H81:0 - ",GetLastError());

     }//if

  }

//--- END -----------------------------------------------------------------------------------------







//--- $#&/  / '!    /+ | 10000000.00->10 000 000.00 ----------------------------

//des(G8A;> B8?0 double, :>;8G5AB2> 7=0:>2 4;O @0745;5=8O, G5< 1C45< @0745;OBL)

string des(double number, int razr=3, string razd=" ")

   {

   double f=MathFloor(MathAbs(number));

   string sNumber=DoubleToStr(number,2);                        //>B1@0AK205< 4@>1=CN G0ABL 8 >B@8F0B5;L=K9 7=0: 5A;8 >= 5ABL

   if (StringLen(DoubleToStr(f,0))<=razr) return(sNumber);      //5A;8 :>;8G5AB2> 7=0:>2 2 7040==>< G8A;5 <5=LH5 8;8 @02=> @07@O4C B> 4>A@>G=> 7025@H05< DC=:F8N, 8=0G5..

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

   string w;  

   while(StringLen(DoubleToStr(f,0))>razr) //?>:0 :>;8G5AB2> 7=0:>2 2 7040==>< G8A;5 1>;LH5 @07@O40 2K?>;=O5< F8:;

      {

      w=razd+StringSubstr(DoubleToStr(f,0),StringLen(DoubleToStr(f,0))-razr,razr)+w;   //:>;8G5AB2> 7=0:>2 4;O @0745;5=8O + :>?8@C5< ?>A;54=85 z F8D@ C G8A;0 + w                                                          //D>@<8@C5< =>2>5 G8A;> A @07@O40<8

      f=MathFloor(f/MathPow(10,razr));                                                 //45;8< f =0 AB5?5=L :>;8G5AB20 7=0:>2 2 @07@O45

      }

   w=DoubleToStr(f,0)+w+StringSubstr(sNumber,StringFind(sNumber,".",0),0);             //2>72@0I05< G8A;> 8 4>102;O5< 4@>1=CN G0ABL

   return(number<0?"-"+w:w);

   }

//--- END -----------------------------------------------------------------------------------------







//--- !  " ------------------------------------------------------------------------

void newlab(int i,string s,color col,int z)

   {

   int sm=10+font_size3;                              //>BABC? >B :@0O, GB> 1K ?><5AB8;8AL :=>?:8 70:@KB8O, A ?>?@02:>9 =0 @07<5@ H@8DB0 <5B>:/:=>?>:

   if (!IsTradeAllowed()) sm=0;                       //5A;8 A>25B=8:C 70?@5I5=0 B>@3>2;O - B> >BABC? 0, B0: :0: :=>?:8 =5 1C4CB >B>1@060BLAO  

   if (i==0) sm=0;                                    //5A;8 AB@>:0 A 10;0=A>< (i==0), B> =5 A<5I05< 5Q B>65. 4;O :@0A>BK

   string labname=labelID+IntegerToString(i,0);

   ObjectCreate(labname,OBJ_LABEL,0,0,0);

   ObjectSet(labname,OBJPROP_CORNER,labs_corner);

   ObjectSet(labname,OBJPROP_XDISTANCE,labs_xdist+sm);

   ObjectSet(labname,OBJPROP_YDISTANCE,i*labs_y_space+labs_ydist);

   ObjectSet(labname,OBJPROP_HIDDEN,0);               //70?@5B =0 ?>:07 2 A?8A:5 >1J5:B>2, 0-@07@5H5=>

   ObjectSet(labname,OBJPROP_SELECTABLE,0);           //2>7<>6=>ABL 2K45;8BL <KHLN, 0-=5B

   ObjectSetText(labname,s,z,font_name,col);          //8<O <5B:8

   }

//--- END -----------------------------------------------------------------------------------------







//--- !   -----------------------------------------------------------------------

void newbut(int _id,int x,int y)

   {

   //--- 2K@02=820=85 <5B>: 2 7028A8<>AB8 >B ?>;>65=8O =0 M:@0=5 ------------------------

   long xdis=0, ydis=0;

   double ys=MathFloor(font_size3*0.35);                 //=51>;LH0O :>@@5:B8@>2:0

   if (labs_corner<1 || labs_corner>4) labs_corner=1;    //5A;8 C3>; @0A?>;>65=8O =5 2 480?07>=5 1-4, B> 2KABO2;O5< 1                                                              

   if (labs_corner==1) {xdis=labs_xdist+font_size3+4;    ydis=labs_y_space*lab_n;}                                  

   if (labs_corner==2) {xdis=labs_xdist;                 ydis=labs_y_space*lab_n; ys=MathFloor(font_size3*1.4);}

   if (labs_corner==3) {xdis=labs_xdist+font_size3+4;    ydis=labs_y_space*lab_n; ys=MathFloor(font_size3*1.35);}

   if (labs_corner==4) {xdis=labs_xdist;                 ydis=labs_y_space*lab_n; ys=MathFloor(font_size3*0.3);}

   long yy=long(ydis+y*labs_y_space+labs_ydist+ys);

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

   string butID=buttonID+IntegerToString(_id,0);               //8<O :=>?:8 A>AB>8B 87 ?@5D8:A0 A>25B=8:0 + ?@5D8:A0 :=>?:8 + =><5@0 >@45@0: DO_but123456

   ObjectCreate(0,butID,OBJ_BUTTON,0,0,0);                     //A>740BL >1J5:B :=>?:0

   ObjectSetInteger(0,butID,OBJPROP_COLOR,White);              //F25B B5:AB0

   ObjectSetInteger(0,butID,OBJPROP_BGCOLOR,Gray);             //F25B D>=0

   ObjectSetInteger(0,butID,OBJPROP_XDISTANCE,xdis);           //?>;>65=85 ?> >A8 x

   ObjectSetInteger(0,butID,OBJPROP_YDISTANCE,yy);             //?>;>65=85 ?> >A8 y

   ObjectSetInteger(0,butID,OBJPROP_XSIZE,font_size3+3);       //H8@8=0

   ObjectSetInteger(0,butID,OBJPROP_YSIZE,font_size3+3);       //2KA>B0

   ObjectSetString (0,butID,OBJPROP_FONT,"Arial");             //H@8DB

   ObjectSetString (0,butID,OBJPROP_TEXT,"X");                 //B5:AB :=>?:8

   ObjectSetInteger(0,butID,OBJPROP_FONTSIZE,font_size3);      //@07<5@ H@8DB0

   ObjectSetInteger(0,butID,OBJPROP_CORNER,labs_corner);       //?>;>65=85 2 C3;C 3@0D8:0

   ObjectSetInteger(0,butID,OBJPROP_HIDDEN,0);                 //70?@5B >B>1@065=8O 2 A?8A:5 >1J5:B>2, 1-70?@5I5=>

   ObjectSetInteger(0,butID,OBJPROP_SELECTABLE,0);             //2>7<>6=>ABL 2K45;8BL <KHLN, 0-=5B

   ObjectSetInteger(0,butID,OBJPROP_STATE,false);              //GB> 1K :=>?:0 ">B68<0;0AL" >1@0B=> ?>A;5 :;8:0

   //ObjectSetInteger(0,butID,OBJPROP_BORDER_TYPE,BORDER_FLAT);//?;>A:0O :=>?:0

   //ObjectSetInteger(0,butID,OBJPROP_BORDER_COLOR,Gray);      //F25B 3@0=8FK :=>?:8

   }

//--- END -----------------------------------------------------------------------------------------







//--- $#&/  )" #+ &", !   ,(  ,( 0 ------------------------------

color setcol(double p, color plus, color minus) { return(p>0?plus:minus); }

//--- END -----------------------------------------------------------------------------------------



//--- $#&/  /" ",+ '!  +,  "   " #"  !" # --------------- 

string znum(double n, int r) { return((n>0?"+":"")+DoubleToStr(n,r)); }

//--- END -----------------------------------------------------------------------------------------



//--- $#&/  /" !"   + ! " #!  "!" ------------------------------------ 

string zstr(string s) { if(StringFind(s,"-",0)==-1) return("+"+s); else return(s); }

//--- END -----------------------------------------------------------------------------------------  



//---    !#)!"/ *"-&  !"  "'.)  +  -    -------

bool check_target() { if (target_obj_flag==true && ObjectFind(0, target_obj_name)>=0) return(true); else return(false); }

//--- END -----------------------------------------------------------------------------------------







//--- +'!    & -----------------------------------------------------------------

double calc_target()

   {

   double cl_op=(Bid-OrderOpenPrice())/Point;

   if (cl_op==0) { Print("devine zero => function calc_target():cl_op"); return(0); }                    //70I8B0 >B 45;5=8O =0 =>;L

   double cost_pip=OrderProfit() / cl_op;                                                                //AB>8<>ABL ?C=:B0 = ?@>D8B >@45@0 / B5:CI59 ?@>D8B ?>78F88 2 ?C=:B0E, GB> 1K C7=0BL F5=C ?C=:B0                

   double target_price=NormalizeDouble(ObjectGetDouble(0, target_obj_name, OBJPROP_PRICE),Digits);       //F5=0 >1J5:B0 - ;8=88, <5B:8 A 8<5=5< target_obj_name  

   double target_count_pips=(target_price-OrderOpenPrice()) / Point;                                     //:>;8G5AB2> ?C=:B>2 <564C F5;LN 8 F5=>9 >B:@KB8O ?>78F88  

   double target_cur_prof=(MathAbs(target_count_pips*cost_pip));                                         //?@>D8B ?@8 4>AB865=88 F5;8 F5=>9

   //4;O ?@028;L=>3> >B>1@065=8O 5A;8 F5;L =0E>48BAO 2KH5 8;8 =865 F5=K ?>:C?:8 45;05< G8A;> >B@8F0B5;L=K<

   if ((OrderType()==OP_BUY && target_price<OrderOpenPrice()) || (OrderType()==OP_SELL && target_price>OrderOpenPrice())) target_cur_prof=-target_cur_prof;           



   return((target_cur_prof+OrderCommission()));

}

//--- END -----------------------------------------------------------------------------------------









//--- !'" +%  +   $ "   #/  ------------------------------------

void indicate_orders()

   {

   if(OrdersTotal()<=0) return;                       //5A;8 =5B >B:@KBKE >@45@>2 B> 2KE>4 87 DC=:F88

   //--- 2K2>4 >A=>2>=>9 AB@>:8 A 10;0=A>< -----------------

   double s1=AccountProfit();                         //4>E>4 >B >B:@KBKE >@45@>2

   double s2=s1/AccountBalance()*100;                 //4>E>4 2 ?@>F5=B0E >B 45?>78B0

   double s3=AccountEquity();                         //A@54AB20 5A;8 >@45@0 1C4CB 70:@KBK 

   //double s4=AccountBalance();                      //10;0=A 

   string hide_str=show_lab==true?"":"[+] ";          //5A;8 =060BL =0 AB@>:C A >1I59 8=D>@<0F859 ?> AG5BC, B> >B:@KBK5 ;>BK A:@>NBAO/>B>1@07OBAO, 4>1028BAO B5:AB

   string s0=hide_str+/*des(s4)+valuta+" | "+*/des(s3)+valuta+" | "+znum(s2,2)+"% | "+zstr(des(s1))+valuta;    //D>@<8@C5< <5B:C 10;0=A0 ?5@54 2K2>4><

   newlab(0,s0,setcol(s1,color_balance_loss,color_balance_profit),font_size1);                                 //<5B:0 A >1I8< 10;0=A><  

 

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

   if (show_lab==false)  return;       //5A;8 >B:@KBK5 ?>78F88 A:@KBK - B> 2KE>48< 87 DC=:F88



   string res;

   int lab_count=0;                    //:>;8G5AB2> >B@8A>20==KE <5B>:

   bool open_orders=false;             //5ABL ;8 >B:@KBK5 >@45@0 =0 B5:CI5< 3@0D8:5



   double all_orders_target_profit=0;  //?>4AG5B ?@81K;8 2A5E >@45@>2 =0 B5:. 3@0D8:5 ?@8 4>AB865=88 F5;8

   

   double orders_profit=0;             //AC<<0 ?@81K;8 2A5E >@45@>2 =0 3@0D8:5

   double orders_lot=0.0;              //AC<<0 ;>B>2 2A5E >@45@>2 =0 3@0D8:5

   

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

      {

      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false) break;     //5A;8 =5 2K18@05< =C6=K9 >@45@ - 4>A@>G=K9 2KE>4 87 F8:;0

      float ord_pro_com=(float)(OrderProfit()+OrderCommission());       //?@>D8B 8 :><8AA8O >@45@0

      int k=lab_n+lab_count;  //?>@O4:>2K9 =><5@ <5B:8. GB> 1K >@45@0 1K;8 A=87C 10;0=A0 8 AC<<K ?@8102;O5< labn

         

      switch(OrderType()) 

         {                                            

         case OP_BUY:         res="BUY ";       break;

         case OP_SELL:        res="SELL ";      break;

         case OP_BUYLIMIT:    res="BUYLIMIT ";  break;

         case OP_BUYSTOP:     res="BUYSTOP ";   break;

         case OP_SELLLIMIT:   res="SELLLIMIT "; break;

         case OP_SELLSTOP:    res="SELLSTOP ";  break;

         default: res="";    

         }              

         

      //--->B;>65==K5 >@45@0-----------------------------------

      if ((OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP) && show_op==true)  

         {

         res=OrderSymbol()+" | "+res+"| "+ DoubleToStr(NormalizeDouble(OrderLots(),2),2) +" | "+DoubleToStr(NormalizeDouble(OrderOpenPrice(),Digits),Digits);    //<--@07<5@ ;>B0

         newlab(k,res,     (OrderSymbol()==Symbol())?color_op:color_nonactive,     font_size3);             //A>7405< <5B:C

         if (IsTradeAllowed()) newbut(OrderTicket(),20,k-lab_n);   //A>7405< :=>?:C C40;5=8O >@45@0, A<5I5=85 ?> >A8 Y A CG5B>< H@8DB0 8 @0AAB>O=8O <564C <5B:0<8

         lab_count++;   //C25;8G8205< AG5BG8: >B@8A>20==KE <5B>:

         }

      

      //--->B:@KBK5 >@45@0-------------------------------------

      if ((OrderType()==OP_BUY || OrderType()==OP_SELL) ) 

         {

         double cur_order_target_profit=0;

         if (OrderSymbol()==Symbol())//5A;8 =0 B5:CI5< 3@0D8:5 5ABL >B:@KBK5 >@45@0 B>, ?>4AG8BK205< AC<<0@=K5 40==K5 >B:@KBKE ?>78F89

            {

            if (open_orders==false) open_orders=true;        //<5=O5< D;03 >7=0G0NI89 5ABL ;8 >B:@KBK5 ?>78F88 =0 B5:CI5< 3@0D8:5

            orders_profit+=ord_pro_com;                      //?>4AG5B ?@>D8B0 >B:@KBKE ?>78F89 2 20;NB5 >@45@0 =0 B5:CI5< 3@0D8:5, 5A;8 B0:>2K5 8<5NBAO

            orders_lot+=NormalizeDouble(OrderLots(),2);      //?>4AG5B ?@>D8B0 >B:@KBKE ?>78F89 2 ?C=:B0E =0 B5:CI5< 3@0D8:5, 5A;8 B0:>2K5 8<5NBAO

            //--- ?>4AG5B 40==KE 4;O ?@>3=>70 ?@81K;8 ----------------                 

            if (check_target()==true)                                //?@>AG8BK20BL 8;8 =5B ?@>3=>7 ?> ?@81K;8

               {

               cur_order_target_profit=calc_target();                //?>;CG5=85 ?@>D8B0 ?> B5:CI5<C >@45@C =0 B5:. 3@0D8:5 ?@8 4>AB865=88 F5;8 F5=>9

               all_orders_target_profit+=cur_order_target_profit;    //AC<<8@>20=85 ?@>D8B0 2A5E >@45@>2 =0 B5:. 3@0D8:5 ?@8 4>AB865=88 F5;8 F5=>9

               }

            }  //if 

         

         //--- 2K2>4 8=D>@<0F88 >1 >B:@KB>9 ?>78F88 ---------------

         res=((color_nonactive==clrNONE && OrderSymbol()==Symbol())?"=> ":"")                                  //<--?>4A25B:0 A8<2>;0<8 "=> " >@45@>2 A B5:CI53> 3@0D8:0

         +OrderSymbol()                                                                                        //<--=0720=85 >@45@0

         //+" | "+IntegerToString(OrderTicket())                                                               //<--=><5@ >@45@0

         +" | "+res+DoubleToStr(NormalizeDouble(OrderLots(),2),2)                                              //<--@07<5@ ;>B0

         +" | "+znum(round((OrderProfit()/OrderLots()/MarketInfo(OrderSymbol(),MODE_TICKVALUE))),0)            //<--?@>D8B 2 ?C=:B0E

         +"? | "+zstr(des(ord_pro_com))+valuta                                                                 //<--?@>D8B 2 20;NB5 45?>78B0

         +(check_target() && OrderSymbol()==Symbol()?" | t:"+zstr(des(cur_order_target_profit))+valuta:"");    //<--5A;8 >1J5:B0-F5;8 =5B B> =5 2K2>48< =8G53> 4>?>;=8B5;L=>, 8=0G5 2K2>48< ?@>3=>78@C5<CN ?@81K;L\C1KB>: 

            

         //5A;8 2 >?F88 "F25B =50:B82=K9 ?>78F88" 2K1@0=> clrNONE, B> >B>1@0605< F25B0 ?@81K;8\C1KB:0 =0 2A5E ?>78F8OE 

         //2 =5 7028A8<>AB8 5ABL ;8 >B:@KBK5 >@45@0 =0 B5:CI5< ?@>A<0B@8205<>< 3@0D8:5, 8=0G5 >@45@0 A 4@C38E 3@0D8:>2 ?><5G05< "=50:B82=K<" F25B><   

         color col1=(color_nonactive==clrNONE)?setcol(ord_pro_com,color_profit,color_loss):((OrderSymbol()==Symbol())?setcol(ord_pro_com,color_profit,color_loss):color_nonactive);

         newlab(k,res,    col1 ,    font_size3);

         if (IsTradeAllowed()) newbut(OrderTicket(), 20, k-lab_n);       //A>7405< :=>?:C C40;5=8O >@45@0, A<5I5=85 ?> >A8 Y A CG5B>< H@8DB0 8 @0AAB>O=8O <564C <5B:0<8, 5A;8 B>@3>2;O A>25B=8:C @07@5H5=0

         lab_count++;   //C25;8G8205< AG5BG8: >B@8A>20==KE <5B>:

         }//if

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

      }//for

      

      

  

   newlab(1,"              ",color_nonactive,font_size2);     //A>7405< <5B:C @0745;8B5;L 

   //---2K2>4 :=>?:8 70:@KB8O 2A5E ?>78F89 =0 B5:. 3@0D8:5 8;8 70:@KB8O !% >B:@KBKE ?>78F89 + 2K2>4 @0745@;8B5;O "-----------"

   if (open_orders==true)  //5ABL ;8 >B:@KBK5 ?>78F88 =0 B5:CI5< 3@0D8:5, 5;8 5ABL 2K2>48< >1ICN 8=D>@<0F8N ?> >B:@KBK< >@45@0<, 5A;8 =5B - 2K2>48< :=>?:C 70:@KB8O !% >@45@>2 2 B5@<8=0;5

      {

      res=Symbol()+" | "+DoubleToString(orders_lot,2)+" | "+zstr(des(orders_profit))+valuta  //D>@<8@C5< AC<<0@=CN 8=D>@<0F8N >1 >B:@KBKE >@45@0E =0 "#) 3@0D8:5

      +(check_target()?" | t:"+zstr(des(all_orders_target_profit)):"");         //5A;8 >1J5:B0-F5;8 =5B B> =5 2K2>48< =8G53> 4>?>;=8B5;L=>, 8=0G5 2K2>48< ?@>3=>78@C5<CN ?@81K;L\C1KB>:

      

      newlab(2,res,setcol(orders_profit,color_profit,color_loss),font_size2);    //A>7405< <5B:C A AC<<0@=>9 8=D>@<0F859

      newlab(3,"              ",color_nonactive,font_size2);                     //A>7405< <5B:C @0745;8B5;L      

      if (IsTradeAllowed()) newbut(99999,20,-2);                                 //2K2>4 :=>?:8 C40;5=8O 2A5E >@45@>2 =0 "#) 3@0D8:5 A C=8:0;L=K< 8<5=5<, 5A;8 B>@3>2;O A>25B=8:C @07@5H5=0

      } else //5A;8 =0 B5:CI5< 3@0D8:5 =5B >B:@KBKE ?>78F89

         {

         lab_n=IsTradeAllowed()==true?4:2;               //<5=O5< A4283 <5B>:, 4;O >B>1@065=8O/A:@KB8O "@0745;8B5;O" "___________"

         if (IsTradeAllowed()) newbut(88888,20,-2); else return; //2K2>4 :=>?:8 C40;5=8O !% >@45@>2 A C=8:0;L=K< 8<5=5<, 5A;8 B>@3>2;O A>25B=8:C @07@5H5=0, 8=0G5 2KE>4

         newlab(2,"Close ALL orders",setcol(orders_profit,color_profit,color_loss),font_size2);     //A>7405< <5B:C A AC<<0@=>9 8=D>@<0F859

         newlab(3,"              ",color_nonactive,font_size2);    //A>7405< <5B:C @0745;8B5;L     

         }//else    

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

    

   }

//--- END -----------------------------------------------------------------------------------------







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

//| Timer function                                                   |

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

void OnTimer()

   {

   delall();            //C40;5=85 2A5E <5B>: 8 :=>?>: A 3@0D8:0

   indicate_orders();   //>1=>2;5=85 <5B>: A >@45@0<8



   if(timebarclose) Comment(TimeToString(Time[0]+Period()*60-TimeCurrent(),TIME_SECONDS));   //2@5<O 4> 70:@KB8O A25G8

   }

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

Comments