ModStopReverse_v_7_aligator

Author: Infoplus
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt Closes Orders by itself It can change open orders parameters, due to possible stepping strategyChecks for the total of closed orders
Indicators Used
FractalsBill Williams Alligator
Miscellaneous
It plays sound alertsIt issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
ModStopReverse_v_7_aligator
//+------------------------------------------------------------------+
//|                                                   ModStopReverse |
//|                                      Copyright 2012, Infoplus    |
//|                                    http://www.infoplus.ipsys.net |
//+------------------------------------------------------------------+
#property copyright "Infoplus"
#property link      "http://www.infoplus.ipsys.net"
#include <stdlib.mqh>

//------- Âíåøíèå ïàðàìåòðû ñîâåòíèêà --------------------------------
extern string _Parameters_Trade="----- Ïàðàìåòðû òîðãîâëè";
extern bool   Continue=True;    // Ðàáîòàòü èëè îñòàíîâèòüñÿ ïîñëå îêîí÷àíèÿ ñåðèè
extern int MAGIC=     1000;    // Ìàäæèê ñîâåòíèêà 
extern int    TrailingStop=20;      // Ôèêñèðîâàííûé ðàçìåð òðàëà
extern int    TrailingStep=1;       // Øàã òðàëà
extern int    Slippage       = 3;       // Ïðîñêàëüçûâàíèå öåíû
extern double Lott_0            = 1;    // Íà÷àëüíûé ðàçìåð ëîòà
extern int    Delta          = 30;      // Ðàññòîÿíèå äëÿ ñòîï-îðäåðîâ
extern double    KK=1.7;      // Êîýôôèöèåíò óìíîæåíèÿ ëîòà
extern int    NoLoss=30;        //Óñòàíîâêà áåçóáûòêà â ïï
extern int     ProfClose=10;        // Çàêðûòü âñå ïðè ïðîôèòå
extern int     TimeStart=9;     //îãðàíè÷åíèå âðåìåíè ðàáîòû ñîâåòíèêà
extern int     TimeEnd= 22;     //íå îòêðûâàåì îðäåðà è çàêðûâàåì îòëîæêè åñëè âðåìÿ íå ìåæäó TimeStart è TimeEnd
extern string _Parameters_Expert="----- Ïàðàìåòðû ñîâåòíèêà";
extern bool   UseSound      = True;         // Èñïîëüçîâàòü çâóêîâîé ñèãíàë
extern string NameFileSound = "expert.wav"; // Íàèìåíîâàíèå çâóêîâîãî ôàéëà
extern color  clOpenBuy     = LightBlue;    // Öâåò îòêðûòèÿ ïîêóïêè
extern color  clOpenSell    = LightCoral;   // Öâåò îòêðûòèÿ ïðîäàæè
extern color  clModifyBuy   = Aqua;         // Öâåò ìîäèôèêàöèè ïîêóïêè
extern color  clModifySell  = Tomato;       // Öâåò ìîäèôèêàöèè ïðîäàæè
extern color  clCloseBuy    = Blue;         // Öâåò çàêðûòèÿ ïîêóïêè
extern color  clCloseSell   = Red;          // Öâåò çàêðûòèÿ ïðîäàæè

//---- Ãëîáàëüíûå ïåðåìåííûå ñîâåòíèêà -------------------------------

int g_fontsize_544=10;
int g_color_548 = Gold;
int g_color_547 = Red;
int g_color_5=Gold;
int FRBarUp=-1;
int FRBarDn=-1;
double BStopLoss;
double SStopLoss;
double LottB,LottS;
bool TradesAlow=false;
bool BUYOK=true;
bool SELLOK=true;
int flagTrStartB=0;
int flagTrStartS=0;
int KolB;
int PrStop=0;
int preKolB;
int KolS;
int preKolS;
double PrBuy=0;
double PrSell=0;
double priceBid;
double priceAsk;
double HistoryZeroPrice,ZeroPrice,StopOutPrice;
//-----------
extern string    Symbol_1="GBPJPY";
extern string    Symbol_2="USDCHF";
extern string    Symbol_3="EURUSD";
extern string    Symbol_4="EURGBP";
extern string    Symbol_5="GBPUSD";
extern string    Symbol_6="EURCHF";
extern string    Symbol_7="EURJPY";
extern string    Symbol_8="GPBPCHF";
extern string    Symbol_9="AUDJPY";
extern string    Symbol_10="AUDUSD";
extern string    Symbol_11="NZDUSD";
extern string    Symbol_12="NZDJPY";
extern string    Symbol_13="CHFJPY";
extern string    Symbol_14="USDCHF";
extern int       ÐàçìåðØðèôòà=10;
//----
double LotS,ProfitS;
double LotB,ProfitB;
double LotT,ProfitT;
double ProfitHistory;
double PartEquity;
color Color;
int  pos,orderremit,TotalOrders,Symb;
string text;
int File;
string FileName;
int CountDate;
double LL;
double Lott;
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
void init()
  {
   Comment("");
   LL=Lott;
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start()
  {
   if(IsTrade())
     {
      if(!ExistOrder(1)) 
        {
         flagTrStartB=0; KolB=0; preKolB=0; BStopLoss=0; TradesAlow=false; LottS=Lott;
         DeleteAllOrders(1); CloseAll(1); RR();
         if(Continue){CalcLots(); SetOrders(1);}
        }
      if(!ExistOrder(2)) 
        {
         flagTrStartS=0; KolS=0; preKolS=0; SStopLoss=0; TradesAlow=false; LottB=Lott;
         DeleteAllOrders(2); CloseAll(2); RR();
         if(Continue){CalcLots(); SetOrders(2);}
        }
     }

   for(int i=3;i<=33;i=i+2)
     {
      if(!ExistOrder(i)) {if(ExistOrderTr(i-2)) {SetOrders(i); }}
     }
   for(int j=4;j<=32;j=j+2)
     {
      if(!ExistOrder(j)) {if(ExistOrderTr(j-2)) {SetOrders(j); }}
     }

   KolB=CheckLots("B");
   if(preKolB!=KolB) 
     {
      preKolB=KolB;
      BStopLoss=0; flagTrStartB=0;    StopOutPrice=0; ZeroPrice=0;
     }
   KolS=CheckLots("S");
   if(preKolS!=KolS) 
     {
      preKolS=KolS;
      SStopLoss=0; flagTrStartS=0;   StopOutPrice=0; ZeroPrice=0;
     }

   if(flagTrStartB==1) {TrailingPositions(1); }
   if(flagTrStartS==1) {TrailingPositions(2); }
   TrailingPositions(0);
   RefreshRates(); Show();
   IndikatorLots(); //NotOut(); No_Loss(111); No_Loss(222);
  }
//+------------------------------------------------------------------+
//|  Ïîäñ÷åò êîë-âà îðäåðîâ                                                                |
//+------------------------------------------------------------------+
int CheckLots(string mn)
  {
   int ko=0;
   for(int i=0; i<OrdersTotal(); i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
        {
         if(OrderSymbol()==Symbol() && OrderComment()==mn) 
           {
            if(OrderType()==OP_BUY) 
              {
               ko=ko+1;
              }
           }
         if(OrderSymbol()==Symbol() && OrderComment()==mn) 
           {
            if(OrderType()==OP_SELL) 
              {
               ko=ko+1;
              }
           }
        }
     }
   return(ko);
  }
//+------------------------------------------------------------------+
//|   Ôðàêòàëüíûé øàã                                                               |
//+------------------------------------------------------------------+
int RR()
  {
   double u,d,U,D;
   int cu,cd;
//----
   for(int i=3;i<=Bars-3;i++) 
     {
      u=iFractals(NULL,0,MODE_UPPER,i);
      d=iFractals(NULL,0,MODE_LOWER,i);

      if(u>0) {U+=u;cu++;}
      if(d>0) {D+=d;cd++;}
     }
   U/=cu; D/=cd;
   int V=(U-D)/Point;  Delta=NormalizeDouble(V,0); if(Delta<30) {Delta=30;}
   Comment(Symbol(),"  TF=",Period(),"   ",V+"   Delta - "+Delta);
   return(0);
  }
//+------------------------------------------------------------------+
//| Ëîê ïðîñåâøåé ñåðèè                                                                 |
//+------------------------------------------------------------------+
void NotOut()
  {
   if(AccountMargin()!=0) 
     {
      if(AccountEquity()/AccountMargin()*100<2000) 
        {
         bool fc=false,fb=false;
         if(LotT>0 && !ExistOrder(111)) 
           {
            // while(fc==False) {
            fc=OrderSend(Symbol(),OP_SELLSTOP,NormalizeDouble(3*LotB,2),Bid-Delta*Point,3,0,0,"Lock_BUY",MAGIC+111,0,clOpenSell);
            EE();//}
           }
         if(LotT<0 && !ExistOrder(222)) 
           {
            //  while(fb==False) {
            fc=OrderSend(Symbol(),OP_BUYSTOP,NormalizeDouble(3*LotS,2),Ask+Delta*Point,3,0,0,"Lock_SELL",MAGIC+222,0,clOpenSell);
            EE();//}
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Óñòàíîâêà îðäåðîâ                                                |
//+------------------------------------------------------------------+
void SetOrders(int nn)
  {
   bool fc; SellorBuy();

   if(nn==1)
     {
      if((isFractalDn(3)!=-1) && BUYOK) 
        {
         fc=false;
         while(fc==false)
           {
            fc=OrderSend(Symbol(),OP_BUY,LottB,Ask,Slippage,0,0,"B",MAGIC+1,0,clOpenBuy); EE();
           }
         return;
        }
     }
   if(nn==2) 
     {
      if((isFractalUp(3)!=-1) && SELLOK) 
        {
         fc=false;
         while(fc==false)
           {
            fc=OrderSend(Symbol(),OP_SELL,LottS,Bid,Slippage,0,0,"S",MAGIC+2,0,clOpenSell); EE();
           }
         return;
        }
     }

   if(MathMod(nn,2)!=0)
     {
      priceBid=Ask+Delta*Point; fc=false; Checks(nn-2);
      if(TradesAlow)
        {
         while(fc==false)
           {
            fc=OrderSend(Symbol(),OP_BUYSTOP,NormalizeDouble(KK*Checks(nn-2),2),priceBid,Slippage,0,0,"B",MAGIC+nn,0,clOpenBuy);
           }
         TradesAlow=false;
        }
     }
   if(MathMod(nn,2)==0)
     {
      priceBid=Bid-Delta*Point; fc=false; Checks(nn-2);
      if(TradesAlow)
        {
         while(fc==false)
           {
            fc=OrderSend(Symbol(),OP_SELLSTOP,NormalizeDouble(KK*Checks(nn-2),2),priceBid,Slippage,0,0,"S",MAGIC+nn,0,clOpenSell);
           }
         TradesAlow=false;
        }
     }
  }
//+------------------------------------------------------------------+
//|     Ðàñ÷åò ëîòîâ                                                 |
//+------------------------------------------------------------------+
void CalcLots() 
  {

   Lott=NormalizeDouble(AccountFreeMargin()/(1/Lott_0*10000),2); ProfClose=Lott*10;
   if(AccountMargin()!=0) 
     {
      if(AccountEquity()/AccountMargin()*100<3000) 
        {
         Lott=LL;
         ProfClose=10;
        }
     }
  }
//+------------------------------------------------------------------+
//|     Ïîäñ÷åò ïðîôèòà                                              |
//+------------------------------------------------------------------+
string ShowProfit()
  {
   double Proff=0; PrBuy=0; PrSell=0;

   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && (OrderComment()=="B" || OrderComment()=="S" || OrderComment()=="Lock_SELL" || OrderComment()=="Lock_BUY"))
           {
            Proff=Proff+OrderProfit()+OrderSwap();
            if(OrderType()==OP_BUY) 
              {
               PrBuy=PrBuy+OrderProfit()+OrderSwap();
              }
            if(OrderType()==OP_SELL) 
              {
               PrSell=PrSell+OrderProfit()+OrderSwap();
              }
           }
        }
     }
   if(AccountMargin()!=0) 
     {
      if(AccountEquity()/AccountMargin()*100<500) 
        {
         if(Proff>=ProfClose)
           {
            CloseAll(0);
            DeleteAllOrders(0); 
           }
        }
     }

   if(PrBuy>=ProfClose && BStopLoss==0) 
     {
      flagTrStartB=1;
      BStopLoss=Bid;
        } else if(PrSell>=ProfClose && SStopLoss==0) {
      flagTrStartS=1; SStopLoss=Ask;
        } else if(ExistOrder(1) && ExistOrder(2) && Proff>=ProfClose) {
      if(AccountMargin()!=0) 
        {
         if(AccountEquity()/AccountMargin()*100<1000) 
           {

            flagTrStartB=0;
            flagTrStartS=0;
            CloseAll(0); DeleteAllOrders(0);
           }
        }
     }
   return(Proff);
  }
//+------------------------------------------------------------------+
//| Âîçâðàùàåò ôëàã ñóùåñòâîâàíèÿ îðäåðà èëè ïîçèöèè ïî íîìåðó       |
//+------------------------------------------------------------------+
bool ExistOrder(int mn)
  {
   bool Exist=False;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC+mn)
           {
            Exist=True; break;
           }
        }
     }
   return(Exist);
  }
//+------------------------------------------------------------------+
//|  Âîçâðàùàåò ôëàã ñóùåñòâîâàíèÿ îòêðûòîãî îðäåðà ïî íîìåðó        |
//+------------------------------------------------------------------+
bool ExistOrderTr(int mn)
  {
   bool Exist=False;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC+mn)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               Exist=True; break;
              }
           }
        }
     }
   return(Exist);
  }
//+------------------------------------------------------------------+
//|  Ïîäñ÷åò ëîòà ïîñëåäíåãî îòêðûòîãî îðäåðà                        |
//+------------------------------------------------------------------+
double Checks(int mn)
  {
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && (OrderMagicNumber()==MAGIC+mn))
           {
            double OL=OrderLots();
            if(OrderType()==OP_SELL) 
              {
               if(Bid-OrderOpenPrice()>2*Delta*Point) 
                 {
                  TradesAlow=true;
                 }
              }
            if(OrderType()==OP_BUY) 
              {
               if(OrderOpenPrice()-Ask>2*Delta*Point) 
                 {
                  TradesAlow=true;
                 }
              }

           }
        }
     }
   return(OL);
  }
//+------------------------------------------------------------------+
//|  Òèï îðäåðà                                                    |
//+------------------------------------------------------------------+
int Tipus()
  {
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && (OrderMagicNumber()==MAGIC+1))
           {
            int OPL=OrderType();
           }
        }
     }
   return(OPL);
  }
//+------------------------------------------------------------------+
//| Çàêðûòèå âñåõ ïîçèöèé ïî ðûíî÷íîé öåíå                           |
//+------------------------------------------------------------------+
void CloseAll(int pp)
  {
   bool fc; int i;
   if(pp==0)
     {
      for(i=OrdersTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && (OrderComment()=="B" || OrderComment()=="S" || OrderComment()=="Lock_SELL" || OrderComment()=="Lock_BUY"))
              {
               if(OrderType()==OP_BUY)
                 {
                  fc=False;
                  while(fc==False)
                    {
                     fc=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clCloseBuy); EE();
                    }
                 }
               if(OrderType()==OP_SELL)
                 {
                  fc=False;
                  while(fc==False)
                    {
                     fc=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clCloseSell); EE();
                    }
                 }
               if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYLIMIT)
                 {
                  fc=OrderDelete(OrderTicket());
                 }
               if(fc && UseSound) PlaySound(NameFileSound);
              }
           }
        }
     }
   if(pp==1)
     {
      for(i=OrdersTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && (OrderComment()=="B" || OrderComment()=="Lock_BUY"))
              {
               if(OrderType()==OP_BUY)
                 {
                  fc=False;
                  while(fc==False)
                    {
                     fc=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clCloseBuy); EE();
                    }
                 }
               if(OrderType()==OP_SELL)
                 {
                  fc=False;
                  while(fc==False)
                    {
                     fc=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clCloseSell); EE();
                    }
                 }
               if(OrderType()==OP_BUYSTOP)
                 {
                  fc=OrderDelete(OrderTicket());
                 }
               if(fc && UseSound) PlaySound(NameFileSound);
              }
           }
        }
     }
   if(pp==2)
     {
      for(i=OrdersTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && (OrderComment()=="S" || OrderComment()=="Lock_SELL"))
              {
               if(OrderType()==OP_SELL)
                 {
                  fc=False;
                  while(fc==False)
                    {
                     fc=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clCloseSell); EE();
                    }
                 }
               if(OrderType()==OP_BUY)
                 {
                  fc=False;
                  while(fc==False)
                    {
                     fc=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clCloseBuy); EE();
                    }
                 }
               if(OrderType()==OP_SELLSTOP)
                 {
                  fc=OrderDelete(OrderTicket());
                 }
               if(fc && UseSound) PlaySound(NameFileSound);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|  âûÿâëåíèå îøèáîê                                                |
//+------------------------------------------------------------------+
void EE()
  {
   int EError=GetLastError();                 // Íå ïîëó÷èëîñü :(
   switch(EError) // Ïðåîäîëèìûå îøèáêè
     {
      case 135:Alert("Öåíà èçìåíèëàñü. Ïðîáóåì åù¸ ðàç..");
      RefreshRates();                     // Îáíîâèì äàííûå

      case 136:Alert("Íåò öåí. Æä¸ì íîâûé òèê..");
      while(RefreshRates()==false)        // Äî íîâîãî òèêà
         Sleep(1);                        // Çàäåðæêà â öèêëå
      // continue;                           // Íà ñëåä. èòåðàöèþ
      case 146:Alert("Ïîäñèñòåìà òîðãîâëè çàíÿòà. Ïðîáóåì åù¸..");
      Sleep(500);                         // Ïðîñòîå ðåøåíèå
      RefreshRates();                     // Îáíîâèì äàííûå

     }
  }
//+------------------------------------------------------------------+
//| Óäàëåíèå âñåõ îðäåðîâ                                            |
//+------------------------------------------------------------------+
void DeleteAllOrders(int mn)
  {
   bool fd; int i;
   if(mn==1) 
     {
      for(i=OrdersTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && OrderComment()=="B")
              {
               if(OrderType()==OP_BUYSTOP)
                 {
                  fd=OrderDelete(OrderTicket());
                  if(fd && UseSound) PlaySound(NameFileSound);
                 }
              }
           }
        }
     }
   if(mn==2) 
     {
      for(i=OrdersTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && OrderComment()=="S")
              {
               if(OrderType()==OP_SELLSTOP)
                 {
                  fd=OrderDelete(OrderTicket());
                  if(fd && UseSound) PlaySound(NameFileSound);
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Ñòîï-îðäåðíûé òðàëë                            |
//+------------------------------------------------------------------+
void TrailingPositions(int mn) 
  {
   int i;
   if(mn==1) 
     {
      for(i=0; i<OrdersTotal(); i++) 
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
           {
            if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MAGIC+1)) 
              {
               if(BStopLoss<Bid-(TrailingStop+TrailingStep-1)*Point) 
                 {
                  BStopLoss=BStopLoss+TrailingStep*Point;
                  if(OrderType()==OP_SELL) 
                    {
                     ModifyStopLoss(0,BStopLoss,clModifyBuy); BUYOK=true; SELLOK=false;
                       } else {
                     ModifyStopLoss(BStopLoss,0,clModifyBuy); BUYOK=true; SELLOK=false;
                    }
                 }
              }
           }
        }
     }
   if(mn==2) 
     {
      for(i=0; i<OrdersTotal(); i++) 
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
           {
            if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MAGIC+2)) 
              {
               if(SStopLoss> Ask+(TrailingStop+TrailingStep-1)*Point) 
                 {
                  SStopLoss=SStopLoss-TrailingStep*Point;
                  if(OrderType()==OP_BUY)
                    {
                     ModifyStopLoss(0,SStopLoss,clModifySell); SELLOK=true; BUYOK=false;
                       } else {
                     ModifyStopLoss(SStopLoss,0,clModifySell); SELLOK=true; BUYOK=false;
                    }
                 }
              }
           }
        }
     }
   if(mn==0) 
     {
      for(i=0; i<OrdersTotal(); i++) 
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
           {
            if(OrderType()==OP_SELLSTOP) 
              {
               if(Bid-OrderOpenPrice()>Delta*Point) 
                 {
                  if(OrderOpenPrice()<Bid-(Delta+TrailingStep-1)*Point) 
                    {
                     double newpr=Bid-Delta*Point;
                     ModStopOrders(newpr,OP_SELLSTOP);
                    }
                 }
              }
            if(OrderType()==OP_BUYSTOP) 
              {
               if(OrderOpenPrice()-Ask>Delta*Point) 
                 {
                  if(OrderOpenPrice()>Ask+(Delta+TrailingStep-1)*Point) 
                    {
                     double newprBS=Ask+Delta*Point;
                     ModStopOrders(newprBS,OP_BUYSTOP);
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|   Ìîäèôèêàöèÿ îòë.îðäåðà                                         |
//+------------------------------------------------------------------+
void ModStopOrders(double newprice,string OP)
  {
   bool   fm;
   double SL=OrderStopLoss();
   if(OP==OP_BUYSTOP)
     {
      SL=SL+TrailingStep*Point;
     }
   if(OP==OP_SELLSTOP)
     {
      SL=SL-TrailingStep*Point;
     }
   fm=OrderModify(OrderTicket(),newprice,0,0,0,Red);
   if(fm && UseSound) {PlaySound(NameFileSound); }
  }
//+------------------------------------------------------------------+
//| Ïåðåíîñ óðîâíÿ StopLoss                                          |
//| Ïàðàìåòðû:                                                       |
//|   ldStopLoss - óðîâåíü StopLoss                                  |
//|   clModify   - öâåò ìîäèôèêàöèè                                  |
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStop,double ldTake,color clModify) 
  {
   bool   fm=false; //DeleteAllOrders();
   double ldOpen=OrderOpenPrice(); //Comment("BStopLoss - "+ldStop);
   while(fm==false) {fm=OrderModify(OrderTicket(),ldOpen,ldStop,ldTake,0,clModify);}
   if(fm && UseSound) {PlaySound(NameFileSound); }
  }
//+------------------------------------------------------------------+
//|  Áåçóáûòîê                                                                |
//+------------------------------------------------------------------+
void No_Loss(int mn)
  {
   double OOP,OSL;
   int tip;
   bool error=true;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         tip=OrderType();
         if((tip<2 && OrderSymbol()==Symbol()) && (OrderMagicNumber()==MAGIC+mn))
           {
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            OSL = NormalizeDouble(OrderStopLoss(),Digits);

            //  if (OrderMagicNumber()==MAGIC+1&& BStopLoss !=0) {OOP=BStopLoss;}
            //  if (OrderMagicNumber()==MAGIC+2 && SStopLoss !=0) {OOP=SStopLoss;}

            if(tip==0)
              {
               if((Bid-OOP)/Point>=NoLoss && OOP>OSL)
                  error=OrderModify(OrderTicket(),OOP,OOP+2*Point,OrderTakeProfit(),0,White);
              }
            if(tip==1)
              {
               if((OOP-Ask)/Point>=NoLoss && (OOP<OSL || OSL==0))
                  error=OrderModify(OrderTicket(),OOP,OOP-2*Point,OrderTakeProfit(),0,White);
              }
            if(!error) Alert("Error No_Loss ",GetLastError(),"   ",Symbol());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|  Èíôîðìïàíåëü                                                    |
//+------------------------------------------------------------------+
void Show()
  {
   string  name_8="5";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,36);
     }
   ObjectSetText(name_8,"Áàëàíñ: "+DoubleToStr(AccountBalance(),2),g_fontsize_544,"Courier New",g_color_548);

   name_8="6";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,56);
     }
   ObjectSetText(name_8,"Ñðåäñòâà: "+DoubleToStr(AccountFreeMargin(),2),g_fontsize_544,"Courier New",g_color_548);

   name_8="7";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,60);
      ObjectSet(name_8,OBJPROP_YDISTANCE,76);
     }
   if(AccountMargin()==0)
     {
      StopOutPrice=0; ZeroPrice=0;
      ObjectSetText(name_8,"Óðîâåíü:   ",g_fontsize_544,"Courier New",g_color_548);
     }
   else
     {
      if(AccountEquity()/AccountMargin()*100<2000) {g_color_5=Red;} else {g_color_5=Gold;}
      ObjectSetText(name_8,"Óðîâåíü: "+DoubleToStr(AccountEquity()/AccountMargin()*100,2),g_fontsize_544,"Courier New",g_color_5);
     }

   name_8="8";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,60);
      ObjectSet(name_8,OBJPROP_YDISTANCE,96);
     }
   ObjectSetText(name_8,"Ïðîôèò: "+DoubleToStr(ShowProfit(),2),g_fontsize_544,"Courier New",g_color_548);

   name_8="13";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,136);
     }
   ObjectSetText(name_8,"STOPOUT: "+DoubleToStr(StopOutPrice,4),g_fontsize_544,"Courier New",g_color_547);

   name_8="14";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,156);
     }
   ObjectSetText(name_8,"ZEROPRICE: "+DoubleToStr(ZeroPrice,4),g_fontsize_544,"Courier New",Red);

   name_8="15";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,176);
     }
//  ObjectSetText(name_8,"BUY Lots: "+DoubleToStr(LotB,2),g_fontsize_544,"Courier New",g_color_548);
   ObjectSetText(name_8,"BUY Lots: "+KolB,g_fontsize_544,"Courier New",g_color_548);
   name_8="16";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,196);
     }
// ObjectSetText(name_8,"SELL Lots: "+DoubleToStr(LotS,2),g_fontsize_544,"Courier New",g_color_548);
   ObjectSetText(name_8,"SELL Lots: "+KolS,g_fontsize_544,"Courier New",g_color_548);
   name_8="17";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,216);
     }
   ObjectSetText(name_8,"BUY Profit: "+DoubleToStr(ProfitB,2),g_fontsize_544,"Courier New",g_color_548);
//ObjectSetText(name_8,"BUYStopLOSS: "+DoubleToStr(BStopLoss,4),g_fontsize_544,"Courier New",g_color_548);
   name_8="18";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,236);
     }
   ObjectSetText(name_8,"SELL Profit: "+DoubleToStr(ProfitS,2),g_fontsize_544,"Courier New",g_color_548);
//ObjectSetText(name_8,"SELLStopLOSS: "+DoubleToStr(SStopLoss,4),g_fontsize_544,"Courier New",g_color_548);
   name_8="19";
   if(ObjectFind(name_8)==-1)
     {
      ObjectCreate(name_8,OBJ_LABEL,0,0,0);
      ObjectSet(name_8,OBJPROP_CORNER,1);
      ObjectSet(name_8,OBJPROP_XDISTANCE,20);
      ObjectSet(name_8,OBJPROP_YDISTANCE,256);
     }
   ObjectSetText(name_8,"ÏðîôèòClose: "+DoubleToStr(ProfClose,2),g_fontsize_544,"Courier New",g_color_548);

  }
//+------------------------------------------------------------------+
//|   Íàõîäèì ôðàêòàë UP                                             |
//+------------------------------------------------------------------+
int isFractalUp(int w) 
  {
   for(int i=0; i!=w; i++) 
     {
      FRBarUp=0;
      if(iFractals(NULL,0,MODE_UPPER,i)!=NULL) { FRBarUp=i; return(i);}
     }
   return(-1);
  }
//+------------------------------------------------------------------+
//|   Íàõîäèì ôðàêòàë DWN                                            |
//+------------------------------------------------------------------+
int isFractalDn(int w) 
  {
   for(int i=0; i!=w; i++) 
     {
      FRBarDn=0;
      if(iFractals(NULL,0,MODE_LOWER,i)!=NULL) { FRBarDn=i; return(i);}
     }
   return(-1);
  }
//+------------------------------------------------------------------+
//|   Àëëèãàòîð                                                      |
//+------------------------------------------------------------------+
void SellorBuy() 
  {
   double jaw_val=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORJAW,1);
   double teeth_val=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,1);
   double lips_val=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORLIPS,1);

   BUYOK=False;
   SELLOK=False;
   isFractalDn(7);
   isFractalUp(7);

   if((jaw_val>High[FRBarUp]) && (teeth_val<High[FRBarUp])/*&& (isFractalUp(3) !=-1)*/) 
     {
      BUYOK=True;
     }
   if((jaw_val<Low[FRBarDn]) && (teeth_val>Low[FRBarDn])/* && (isFractalDn(3) !=-1)*/) 
     {
      SELLOK=True; 
     }
  }
//+------------------------------------------------------------------+
//|  Òîðãîâëÿ ïî âðåìåíè                                             |
//+------------------------------------------------------------------+
bool IsTrade()
  {
//---
   int TekHour=Hour();
   bool Trade;
   if(TimeStart<TimeEnd && TekHour>=TimeStart && TekHour<TimeEnd)
     {
      Trade=true; //Comment("Òîðãîâëÿ ðàçðåøåíà!!! ");
     }
   else
     {
      if(TimeStart>TimeEnd && (TekHour>=TimeStart || TekHour<TimeEnd))
        {
         Trade=true; //Comment("Òîðãîâëÿ ðàçðåøåíà!!! "); 
        }//òîðãîâëÿ íî÷üþ
      else {Trade=false;}
     }
   if(!Trade)
     {
      //Comment("Òîðãîâëÿ çàïðåùåíà ïî âðåìåíè ");
     }
//---
   return(Trade);
  }
//+------------------------------------------------------------------+
//|  Óðîâíè áåçóáûòêà                                                |
//+------------------------------------------------------------------+
int IndikatorLots()
  {
//----
   if(AccountBalance()==0)return(0);
//----
   double TickVal=MarketInfo(Symbol(),MODE_TICKVALUE);
//---- îïðåäåëåíèå êîëè÷åñòâà èíñòðóìåíòîâ è ðàñïðåäåëåíèå ñðåäñòâ äëÿ íèõ

//---- âûñòàâëåíèå óðîâíÿ ìàðæèíêîëà

   if(TotalOrders!=OrdersTotal() && AccountBalance()!=0)
     {
      TotalOrders=OrdersTotal();
      double Lot,Lot_1,Lot_2,Lot_3,Lot_4,Lot_5,Lot_6,Lot_7,Lot_8,Lot_9,Lot_10;
      for(pos=OrdersTotal()-1;pos>=0;pos--)
        {
         if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
           {
            if(OrderType()<=OP_SELL)
              {
               if(OrderType()==OP_BUY){Lot=OrderLots();}
               if(OrderType()==OP_SELL){Lot=-OrderLots();}
               if(OrderSymbol()==Symbol_1){Lot_1=NormalizeDouble(Lot_1+Lot,2);}
               else if(OrderSymbol()==Symbol_2){Lot_2=NormalizeDouble(Lot_2+Lot,2);}
               else if(OrderSymbol()==Symbol_3){Lot_3=NormalizeDouble(Lot_3+Lot,2);}
               else if(OrderSymbol()==Symbol_4){Lot_4=NormalizeDouble(Lot_4+Lot,2);}
               else if(OrderSymbol()==Symbol_5){Lot_5=NormalizeDouble(Lot_5+Lot,2);}
               else if(OrderSymbol()==Symbol_6){Lot_6=NormalizeDouble(Lot_6+Lot,2);}
               else if(OrderSymbol()==Symbol_7){Lot_7=NormalizeDouble(Lot_7+Lot,2);}
               else if(OrderSymbol()==Symbol_8){Lot_8=NormalizeDouble(Lot_8+Lot,2);}
               else if(OrderSymbol()==Symbol_9){Lot_9=NormalizeDouble(Lot_9+Lot,2);}
               else if(OrderSymbol()==Symbol_10){Lot_10=NormalizeDouble(Lot_10+Lot,2);}
               else
                 {
                  Alert("\"Inf_Open_Orders\". Ïîÿâèëñÿ îðäåð ïî íåóêàçàííîìó èíñòðóìåíòó ",OrderSymbol(),"!");
                  return(0);
                 }
              }
           }
         else Print("Îøèáêà ",GetLastError());
        }
      Symb=0;
      if(Lot_1!=0){Symb++;}
      if(Lot_2!=0){Symb++;}
      if(Lot_3!=0){Symb++;}
      if(Lot_4!=0){Symb++;}
      if(Lot_5!=0){Symb++;}
      if(Lot_6!=0){Symb++;}
      if(Lot_7!=0){Symb++;}
      if(Lot_8!=0){Symb++;}
      if(Lot_9!=0){Symb++;}
      if(Lot_10!=0){Symb++;}
     }
   if(Symb!=0)
     {
      PartEquity=(AccountEquity()-AccountStopoutLevel()/100*AccountMargin())/Symb;//ðàñïðåäåë¸ííûå ñðåäñòâà
     }

//---- îïðåäåëåíèå ïðîôèòîâ è îáü¸ìîâ ëîòîâ
   LotS=0;
   ProfitS=0;
   LotB=0;
   ProfitB=0;
   ProfitT=0;

   for(pos=OrdersTotal()-1; pos>=0; pos--)
     {
      if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderSymbol()==Symbol())
           {
            //----
            if(OrderType()==OP_BUY)
              {
               LotB+=OrderLots();
               ProfitB+=OrderProfit()+OrderSwap();
              }
            //----
            if(OrderType()==OP_SELL)
              {
               LotS+=OrderLots();
               ProfitS+=OrderProfit()+OrderSwap();
              }
            //----
            ProfitT+=OrderProfit()+OrderSwap();
            //----
           }
        }
      else Print("Îøèáêà ïðè äîñòóïå ê ðåàë áàçå (",GetLastError(),")");
     }

//---- îïðåäåëåíèå íà÷àëà îòñ÷¸òà â èñòîðèè îðäåðîâ
   if(AccountBalance()!=0)
      //----
     {
      int order;
      for(pos=OrdersTotal()-1;pos>=0;pos--)//ïîèñê íàëè÷èÿ îòêðûòûõ îðäåðîâ
        {
         if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
           {
            if(OrderSymbol()==Symbol() && OrderType()<=OP_SELL)
              {
               order++;
              }
           }
         else Print("Îøèáêà ïðè äîñòóïå ê ðåàë áàçå (",GetLastError(),")");
        }

     }
//----
   text=StringConcatenate("Total History profit (",TimeToStr(CountDate,TIME_DATE|TIME_MINUTES),")=");
   ObjectSetText("Inf_HistoryTotal",text,ÐàçìåðØðèôòà,"Arial",DarkOrange);
//----  
   ProfitHistory=0;
   for(pos=OrdersHistoryTotal()-1;pos>=0;pos--)//ïîäñ÷¸ò ïðîôèòà èç èñòîðèè
     {
      if(OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)==true)
        {
         if(OrderSymbol()==Symbol() && OrderOpenTime()>=CountDate)
           {
            ProfitHistory+=OrderProfit()+OrderSwap();
           }
        }
      else Print("Îøèáêà ïðè äîñòóïå ê èñòîðè÷åñêîé áàçå (",GetLastError(),")");
     }
   ProfitHistory=ProfitHistory+ProfitT;

//---- âûñòàâëåíèå íóëåâûõ è StopOut óðîâíåé  
   LotT=LotB-LotS;
   if(LotT!=0)
     {

      if(LotT>0)//Buy ëîò ïðeèìóùåñòâî
        {
         HistoryZeroPrice=NormalizeDouble(Bid-(ProfitHistory/LotT/TickVal*Point),Digits);
         ZeroPrice=NormalizeDouble(Bid-(ProfitT/LotT/TickVal*Point),Digits);
         StopOutPrice=NormalizeDouble(Bid-(PartEquity/LotT/TickVal*Point),Digits);
        }
      if(LotT<0)//Sell ëîò ïðeèìóùåñòâî
        {
         HistoryZeroPrice=NormalizeDouble(Ask-(ProfitHistory/LotT/TickVal*Point),Digits);
         ZeroPrice=NormalizeDouble(Ask-(ProfitT/LotT/TickVal*Point),Digits);
         StopOutPrice=NormalizeDouble(Ask-(PartEquity/LotT/TickVal*Point),Digits);
        }

      //---- Âûñòàâëåíèå îáùåãî íóëåâîãî ðåàë óðîâíÿ
      if(ObjectFind("Line of the zero price")!=0)//îòñóòñòâèå Line zero â ãëàâíîì îêíå
        {
         ObjectCreate("Line of the zero price",OBJ_TREND,0,Time[5],ZeroPrice,Time[0]+Period()*60*20,ZeroPrice,0,0);
         ObjectSetText("Line of the zero price",DoubleToStr(ZeroPrice,Digits));
         ObjectSet("Line of the zero price",OBJPROP_RAY,false);
         ObjectSet("Line of the zero price",OBJPROP_STYLE,STYLE_SOLID);
         ObjectSet("Line of the zero price",OBJPROP_WIDTH,1);
         ObjectSet("Line of the zero price",OBJPROP_COLOR,Gold);
        }
      else if(ObjectFind("Line of the zero price")==0)//íàëè÷èå Line zero â ãëàâíîì îêíå
        {
         ObjectSetText("Line of the zero price",DoubleToStr(ZeroPrice,Digits));
         ObjectSet("Line of the zero price",OBJPROP_TIME1,Time[5]);
         ObjectSet("Line of the zero price",OBJPROP_PRICE1,ZeroPrice);
         ObjectSet("Line of the zero price",OBJPROP_TIME2,Time[0]+Period()*60*20);
         ObjectSet("Line of the zero price",OBJPROP_PRICE2,ZeroPrice);
        }
      if(ObjectFind("Zero price")!=0)//îòñóòñòâèå Arrow zero â ãëàâíîì îêíå
        {
         ObjectCreate("Zero price",OBJ_ARROW,0,Time[5],ZeroPrice,0,0,0,0);
         ObjectSet("Zero price",OBJPROP_ARROWCODE,5);
         ObjectSet("Zero price",OBJPROP_WIDTH,2);
         ObjectSet("Zero price",OBJPROP_COLOR,Gold);
        }
      else if(ObjectFind("Zero price")==0)//íàëè÷èå Arrow zero â ãëàâíîì îêíå 
        {
         ObjectSet("Zero price",OBJPROP_PRICE1,ZeroPrice);
         ObjectSet("Zero price",OBJPROP_TIME1,Time[5]);
        }

      //---- Âûñòàâëåíèå StopOut óðîâíÿ  
      if(ObjectFind("Line of the StopOut price")!=0)
        {
         ObjectCreate("Line of the StopOut price",OBJ_TREND,0,Time[5],StopOutPrice,Time[0]+Period()*60*20,StopOutPrice,0,0);
         ObjectSetText("Line of the StopOut price",DoubleToStr(StopOutPrice,Digits));
         ObjectSet("Line of the StopOut price",OBJPROP_RAY,false);
         ObjectSet("Line of the StopOut price",OBJPROP_STYLE,STYLE_SOLID);
         ObjectSet("Line of the StopOut price",OBJPROP_WIDTH,2);
         ObjectSet("Line of the StopOut price",OBJPROP_COLOR,Brown);
        }
      else if(ObjectFind("Line of the StopOut price")==0)
        {
         ObjectSetText("Line of the StopOut price",DoubleToStr(StopOutPrice,Digits));
         ObjectSet("Line of the StopOut price",OBJPROP_TIME1,Time[5]);
         ObjectSet("Line of the StopOut price",OBJPROP_PRICE1,StopOutPrice);
         ObjectSet("Line of the StopOut price",OBJPROP_TIME2,Time[0]+Period()*60*20);
         ObjectSet("Line of the StopOut price",OBJPROP_PRICE2,StopOutPrice);
        }
      if(ObjectFind("StopOut price")!=0)
        {
         ObjectCreate("StopOut price",OBJ_ARROW,0,Time[5],StopOutPrice,0,0,0,0);
         ObjectSet("StopOut price",OBJPROP_ARROWCODE,5);
         ObjectSet("StopOut price",OBJPROP_WIDTH,3);
         ObjectSet("StopOut price",OBJPROP_COLOR,Brown);
        }
      else if(ObjectFind("StopOut price")==0)
        {
         ObjectSet("StopOut price",OBJPROP_PRICE1,StopOutPrice);
         ObjectSet("StopOut price",OBJPROP_TIME1,Time[5]);
        }
      //----
     }
   else if(LotT==0)
     {
      if(ObjectFind("Line of the history zero price")==0)ObjectDelete("Line of the history zero price");
      if(ObjectFind("History zero price")==0)ObjectDelete("History zero price");
      if(ObjectFind("Line of the zero price")==0)ObjectDelete("Line of the zero price");
      if(ObjectFind("Zero price")==0)ObjectDelete("Zero price");
      if(ObjectFind("Line of the StopOut price")==0)ObjectDelete("Line of the StopOut price");
      if(ObjectFind("StopOut price")==0)ObjectDelete("StopOut price");
     }

//---- Âûñòàâëåíèå BUY íóëåâîãî óðîâíÿ 
   if(LotB>0)
     {
      double BUYZeroPrice;
      BUYZeroPrice=NormalizeDouble(Bid-(ProfitB/LotB/TickVal*Point),Digits);
      if(ObjectFind("Line of the BUY zero price")!=0)
        {
         ObjectCreate("Line of the BUY zero price",OBJ_TREND,0,Time[5],BUYZeroPrice,Time[0]+Period()*60*20,BUYZeroPrice,0,0);
         ObjectSetText("Line of the BUY zero price",DoubleToStr(BUYZeroPrice,Digits));
         ObjectSet("Line of the BUY zero price",OBJPROP_RAY,false);
         ObjectSet("Line of the BUY zero price",OBJPROP_STYLE,STYLE_SOLID);
         ObjectSet("Line of the BUY zero price",OBJPROP_WIDTH,1);
         ObjectSet("Line of the BUY zero price",OBJPROP_COLOR,Chartreuse);
        }
      else if(ObjectFind("Line of the BUY zero price")==0)
        {
         ObjectSetText("Line of the BUY zero price",DoubleToStr(BUYZeroPrice,Digits));
         ObjectSet("Line of the BUY zero price",OBJPROP_TIME1,Time[5]);
         ObjectSet("Line of the BUY zero price",OBJPROP_PRICE1,BUYZeroPrice);
         ObjectSet("Line of the BUY zero price",OBJPROP_TIME2,Time[0]+Period()*60*20);
         ObjectSet("Line of the BUY zero price",OBJPROP_PRICE2,BUYZeroPrice);
        }
      if(ObjectFind("BUY Zero price")!=0)
        {
         ObjectCreate("BUY Zero price",OBJ_ARROW,0,Time[5],BUYZeroPrice,0,0,0,0);
         ObjectSet("BUY Zero price",OBJPROP_ARROWCODE,5);
         ObjectSet("BUY Zero price",OBJPROP_WIDTH,2);
         ObjectSet("BUY Zero price",OBJPROP_COLOR,Chartreuse);
        }
      else if(ObjectFind("BUY Zero price")==0)
        {
         ObjectSet("BUY Zero price",OBJPROP_PRICE1,BUYZeroPrice);
         ObjectSet("BUY Zero price",OBJPROP_TIME1,Time[5]);
        }
     }
   else if(LotB==0)
     {
      if(ObjectFind("Line of the BUY zero price")==0)ObjectDelete("Line of the BUY zero price");
      if(ObjectFind("BUY Zero price")==0)ObjectDelete("BUY Zero price");
     }

//---- Âûñòàâëåíèå SELL íóëåâîãî óðîâíÿ 
   if(LotS>0)
     {
      double SELLZeroPrice;
      SELLZeroPrice=NormalizeDouble(Ask+(ProfitS/LotS/TickVal*Point),Digits);
      if(ObjectFind("Line of the SELL zero price")!=0)
        {
         ObjectCreate("Line of the SELL zero price",OBJ_TREND,0,Time[5],SELLZeroPrice,Time[0]+Period()*60*20,SELLZeroPrice,0,0);
         ObjectSetText("Line of the SELL zero price",DoubleToStr(SELLZeroPrice,Digits));
         ObjectSet("Line of the SELL zero price",OBJPROP_RAY,false);
         ObjectSet("Line of the SELL zero price",OBJPROP_STYLE,STYLE_SOLID);
         ObjectSet("Line of the SELL zero price",OBJPROP_WIDTH,1);
         ObjectSet("Line of the SELL zero price",OBJPROP_COLOR,DeepPink);
        }
      else if(ObjectFind("Line of the SELL zero price")==0)
        {
         ObjectSetText("Line of the SELL zero price",DoubleToStr(SELLZeroPrice,Digits));
         ObjectSet("Line of the SELL zero price",OBJPROP_TIME1,Time[5]);
         ObjectSet("Line of the SELL zero price",OBJPROP_PRICE1,SELLZeroPrice);
         ObjectSet("Line of the SELL zero price",OBJPROP_TIME2,Time[0]+Period()*60*20);
         ObjectSet("Line of the SELL zero price",OBJPROP_PRICE2,SELLZeroPrice);
        }
      if(ObjectFind("SELL Zero price")!=0)
        {
         ObjectCreate("SELL Zero price",OBJ_ARROW,0,Time[5],SELLZeroPrice,0,0,0,0);
         ObjectSet("SELL Zero price",OBJPROP_ARROWCODE,5);
         ObjectSet("SELL Zero price",OBJPROP_WIDTH,2);
         ObjectSet("SELL Zero price",OBJPROP_COLOR,DeepPink);
        }
      else if(ObjectFind("SELL Zero price")==0)
        {
         ObjectSet("SELL Zero price",OBJPROP_PRICE1,SELLZeroPrice);
         ObjectSet("SELL Zero price",OBJPROP_TIME1,Time[5]);
        }
     }
   else if(LotS==0)
     {
      if(ObjectFind("Line of the SELL zero price")==0)ObjectDelete("Line of the SELL zero price");
      if(ObjectFind("SELL Zero price")==0)ObjectDelete("SELL Zero price");
     }

//---- çàïîëíåíèå ñòðîê èíôîðìàöèåé
   ProfitB=NormalizeDouble(ProfitB,0);
   ProfitS=NormalizeDouble(ProfitS,0);
   ProfitHistory=NormalizeDouble(ProfitHistory,0);
//ñòðîêà Buy
   if(LotB>0)
     {
      text=DoubleToStr(LotB,2);
     }
   else if(LotB==0){text="";}
   ObjectSetText("Inf_BuyLots",text,ÐàçìåðØðèôòà,"Arial",Aqua);
   if(LotB>0)
     {
      if(ProfitB<0)Color=Red;
      if(ProfitB>0)Color=Green;
      if(ProfitB==0)Color=Gold;
      text=DoubleToStr(ProfitB,0);
     }
   else if(LotB==0){text="";}
   ObjectSetText("Inf_BuyProfit",text,ÐàçìåðØðèôòà,"Arial",Color);
//ñòðîêà Sell       
   if(LotS>0)
     {
      text=DoubleToStr(LotS,2);
     }
   else if(LotS==0){text="";}
   ObjectSetText("Inf_SellLots",text,ÐàçìåðØðèôòà,"Arial",OrangeRed);
   if(LotS>0)
     {
      if(ProfitS<0)Color=Red;
      if(ProfitS>0)Color=Green;
      if(ProfitS==0)Color=Gold;
      text=DoubleToStr(ProfitS,0);
     }
   else if(LotS==0){text="";}
   ObjectSetText("Inf_SellProfit",text,ÐàçìåðØðèôòà,"Arial",Color);
//ñòðîêà òîòàë
   if(LotS>0 || LotB>0)
     {
      LotT=NormalizeDouble(LotB-LotS,2);
      if(LotT<0)Color=OrangeRed;
      if(LotT>0)Color=Aqua;
      if(LotT==0)Color=Gold;
      text=DoubleToStr(LotT,2);
     }
   else if(LotS==0 && LotB==0){text="";}
   ObjectSetText("Inf_TotalLots",text,ÐàçìåðØðèôòà,"Arial",Color);
   if(LotS>0 || LotB>0)
     {
      if(ProfitB+ProfitS<0)Color=Red;
      if(ProfitB+ProfitS>0)Color=Green;
      if(ProfitB+ProfitS==0)Color=Gold;
      text=DoubleToStr(ProfitB+ProfitS,0);
     }
   else if(LotS==0 && LotB==0){text="";}
   ObjectSetText("Inf_TotalProfit",text,ÐàçìåðØðèôòà,"Arial",Color);
//ñòðîêà History òîòàë
   if(LotS>0 || LotB>0)
     {
      if(ProfitHistory<0)Color=Red;
      if(ProfitHistory>0)Color=Green;
      if(ProfitHistory==0)Color=Gold;
      text=DoubleToStr(ProfitHistory,0);
     }
   else if(LotS==0 && LotB==0){text="";}
   ObjectSetText("Inf_HistoryTotalProfit",text,ÐàçìåðØðèôòà,"Arial",Color);

//----
   return(0);
  }
//+------------------------------------------------------------------+

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