OrderChase_V3

Author: Roger
Orders Execution
Checks for the total of open ordersChecks for the total of closed ordersIt automatically opens orders when conditions are reached
Miscellaneous
Uses files from the file systemIt issuies visual alerts to the screenIt reads information from a file
0 Views
0 Downloads
0 Favorites

Profitability Reports

GBP/USD Oct 2024 - Jan 2025
0.00 %
Total Trades 0
Won Trades 0
Lost trades 0
Win Rate 0.0 %
Expected payoff 0.00
Gross Profit 0.00
Gross Loss 0.00
Total Net Profit 0.00
-100%
-50%
0%
50%
100%
OrderChase_V3
//+------------------------------------------------------------------+
//|                                                   OrderChase.mq4 |
//|                                                            Roger |
//|                                      http://www.rogersignals.com |
//+------------------------------------------------------------------+
#property copyright "Roger"
#property link      "http://www.rogersignals.com/ru/"
//Ýòîò ñîâåòíèê ïðåäíàçíà÷åí äëÿ ïîñëåäîâàòåëüíîãî îòêðûòèÿ îðäåðîâ ïî çàëîæåííîé Âàìè ïðîãðàììå.
//Ïðåäâàðèòåëüíî íåîáõîäèìî ïîäãîòîâèòü êîíôèãóðàöèîííûé ôàéë, â êîòîðîì Âû ðàñïèñûâàåòå ñöåíàðèé îòêðûòèÿ îðäåðîâ.
//Íàçâàíèå ôàéëà - Chase.csv, ëåæèò îí â ïîääèðåêòîðèè \experts\files\ è ìîæåò âûãëÿäåòü ïðèáëèçèòåëüíî òàê:
//1;SELL;0;;1.0;0;1.667;1.6285
//2;BUY;1;TP;2.2;0;1000;650
//3;SELLLIMIT;2;TP;4.0;Bid+500;0;1000
//Ïðîùå âñåãî çàïîëíÿòü ýòîò ôàéë ÷åðåç Excel, íî â ïðèíöèïå âîçìîæíî è ÷åðåç ëþáîé ðåäàêòîð
//Íàçíà÷åíèå êîëîíîê ñëåäóùåå:
//1 - ïîðÿäêîâûé íîìåð, èäåò ñòðîãî îò 1, 2,3 è äî ìàêñèìàëüíîãî;
//2 - òèï îðäåðà (BUY, SELL, BUYLIMIT, SELLLIMIT, BUYSTOP è SELLSTOP), ìîæíî öèôðàìè;
//3 - çàâèñèìîñòü îðäåðà, ò.å. åñëè Âû æåëàåòå, ÷òîáû îðäåð âûñòàâèëñÿ ïîñëå îòêðûòèÿ 1-ãî îðäåðà, ñòàâèòñÿ 1;
//4 - òèï çàâèñèìîñòè, ìîæåò áûòü OP - îòêðûòèå (èìåííî îòêðûòèå, à íå âûñòàâëåíèå) îðäåðà, OR - âûñòàâëåíèå îðäåðà, SL - çàêðûòèå îðäåðà ïî ñòîïó, 
//TP - çàêðûòèå îðäåðà ïî òåéêïðîôèòó, CL - ëþáîå çàêðûòèå îðäåðà, CL- è CL+ - çàêðûòèå îðäåðà, ñîîòâåòñòâåííî, â ìèíóñ è â ïëþñ ;
//5 - ðàçìåð ëîòà;
//6 - öåíà îòêðûòèÿ îðäåðà (äëÿ BUY è SELL îðäåðîâ âñåãäà 0, ïîòîìó êàê îòêðîåòñÿ ïî ðûíêó). Äëÿ îòëîæåííûõ îðäåðîâ âîçìîæíî êîñâåííîå çàäàíèå öåíû
// íàïðèìåð, äëÿ BUYLIMIT - ASK-200;
//7 - öåíà ñòîïëîññà çàêðûòèÿ îðäåðà (åñëè ñòàâèòå 0 èëè ïóñòîå ìåñòî, çíà÷èò ñòîïà íå áóäåò). Òàêæå âîçìîæíî çàäàíèå ñòîïà â ïèïñàõ öåëûõ ÷èñëîì;
//8 - öåíà òåéêïðîôèòà çàêðûòèÿ îðäåðà (òî æå).
//Ñîâåòíèê ðàáîòàåò òîëüêî äëÿ îäíîé ïàðû âàëþò, íà ãðàôèê êîòîðîé îí óñòàíîâëåí.
//Åñëè öåíû èëè êîëè÷åñòâî ëîòîâ óñòàíîâëåíî íåïðàâèëüíî, îðäåð íå âûñòàâëÿåòñÿ è âñÿ öåïî÷êà íàðóøàåòñÿ.
//Áóäüòå âíèìàòåëüíû!!!
//Äëÿ çàïóñêà íîâîé öåïî÷êè, íåîáõîäèìî, ÷òîáû âñå îðäåðà, îòêðûòûå ýòèì ñîâåòíèêîì, áûëè çàêðûòû.
//Ïåðâûé îðäåð ìîæíî îòêðûâàòü âðó÷íóþ (â îáùåé íóìåðàöèè îí áóäåò íóëåâûì).
//Åñëè ïðè çàïóñêå òåðìèíàëà íè îäíîãî îðäåðà íå îòêðûòî (íàïðèìåð ïðè ãýïå çà âûõîäíûå çàêðîþòñÿ âñå îðäåðà), öèêë íà÷íåòñÿ ñ ïåðâîãî îðäåðà. 
//Âîçìîæíî äîïèñûâàíèå çàäàíèé, íàïðèìåð, ïîñëå îòêðûòèÿ òðåòüåãî îðäåðà äîïèñûâàåòå âåðîÿòíóþ ïîñëåäîâàòåëüíîñòü íà âîçìîæíûå çàêðûòèÿ îðäåðà è
//ïåðåçàïóñêàåòå ñîâåòíèê. Êîãäà ñðàáîòàåò ñëåäóþùèé, äîïèñûâàåòå óæå äëÿ ýòîãî îðäåðà è òàê ïîêà íå íàäîåñò.
//Åñëè óñòàíîâèòü loop=true, öèêë áóäåò ïîâòîðÿòüñÿ ïîñëå çàêðûòèÿ ïîñëåäíåãî îðäåðà äëÿ äàííîãî ñèìâîëà.
//Óñëè óñòàíîâèòü Sound=true, ïðè àñòóïëåíèè êàêîãî-ëèáî ñîáûòèÿ áóäåò âûñêàêèâàòü îêíî ñ îïèñàíèåì ýòîãî ñîáûòèÿ.

extern bool      loop=false;
extern bool      Sound=false;
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int trade[],num[],numfrom[],ortrade[],ortic[],ormag[];
string price[],stopl[],takep[],res[];
double lots[];
int row,flag,flag2,flag3,mag,x,ord;
int init()
  {
//----
   int handle,maghis,cnt;
   string str,typord;
   
   
   handle=FileOpen("Chase.csv",FILE_CSV|FILE_READ);//îòêðûâàåì ôàéë
   if(handle==-1)//à åñòü ëè ýòîò ôàéë âîîáùå
      {
      Alert("Ôàéë îòñóòñòâóåò!!!");
      flag=1;
      return(0); 
      }
   if(FileSize(handle)==0)//à íå ïóñòîé ëè îí
      {
      FileClose(handle);
      Alert("Ôàéë ïóñòîé!!!");
      flag=1;
      return(0); 
      }
   row=0;
   while(!FileIsEnding(handle))//íà÷èíàåì ïàðñèòü ñòðîêè
      {
      str=FileReadString(handle);
      if(StrToInteger(str)==0)
         {
         FileClose(handle);
         break;
         }
      row++;
      ArrayResize(num,row);//ðàñøèðÿåì ìàññèâû
      ArrayResize(numfrom,row);
      ArrayResize(trade,row);
      ArrayResize(res,row);
      ArrayResize(lots,row);
      ArrayResize(price,row);
      ArrayResize(stopl,row);
      ArrayResize(takep,row);
      num[row-1]=StrToInteger(str);  //ñ÷èòûâàåì ïîýëåìåíòíî, ñíà÷àëà íîìåð        
      typord=FileReadString(handle);
      if(StrToInteger(typord)==0&&typord!="0")trade[row-1]=ordtoint(typord); else trade[row-1]=StrToInteger(typord);
      numfrom[row-1]=StrToInteger(FileReadString(handle));         
      res[row-1]=FileReadString(handle);
      lots[row-1]=StrToDouble(FileReadString(handle));
      price[row-1]=FileReadString(handle);
      stopl[row-1]=FileReadString(handle);
      takep[row-1]=FileReadString(handle);// è ïîñëåäíèé
      }
   x=OrdersTotal();
   ord=0;
   if(x>0)for(cnt=0;cnt<x;cnt++)//ñîñòàâëÿåì ìàññèâ îòêðûòûõ îðäåðîâ íà òåðìèíàëå
       {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       if(OrderSymbol()==Symbol())
         {
         ord++;
         ArrayResize(ortrade,ord);
         ArrayResize(ormag,ord);
         ArrayResize(ortic,ord);
         ortic[ord-1]=OrderTicket();
         ormag[ord-1]=OrderMagicNumber();
         ortrade[ord-1]=OrderType();
         }
       }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  int i,ii,iii,his,hisend,cnt,magic, flag1, flag11;
  string result;
//----
   if(flag==1)//åñëè ôàéë áûë ïóñòîé
      {
      Alert("Çàïîëíèòå ôàéë Chase.csv ñîãëàñíî èíñòðóêöèè è ïåðåçàïóñòèòå ñîâåòíèê!!");
      return(0);
      }   
   if(flag2==1)return(0);
   if(x==OrdersTotal()&&x!=0)//ïðîâåðÿåì ñðàáàòûâàíèå îòëîæåííûõ
      {         
      for(i=0;i<ord;i++)
         {
         OrderSelect(ortic[i], SELECT_BY_TICKET);
         if(ortrade[i]!=OrderType())//åñëè ñðàáîòàë
            {
            ortrade[i]=OrderType();
            magic=ormag[i];
            result="OP";
            if(Sound)Alert("Îòëîæåííûé îðäåð ñðàáîòàë!");
            flag1=1;
            break;
            }
         }   
      }
   if(x>OrdersTotal())//ïðîâåðÿåì, êàêèå îðäåðà çàêðûëèñü è ñ êàêèì ðåçóëüòàòîì
      {
      cnt=x-OrdersTotal();
      int nn;
      for(i=OrdersHistoryTotal()-1;i>OrdersHistoryTotal()-cnt-1;i--)
         {
         OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
         int mag1[],kol;
         string res1[];
         for(ii=0;ii<ord;ii++)
            {
            if(ormag[ii]==OrderMagicNumber()&&Symbol()==OrderSymbol())
               {
               kol++;
               ArrayResize(res1,kol);
               ArrayResize(mag1,kol);
               mag1[kol-1]=ormag[ii];
               nn=ii;
               result="CL";
               for(iii=0;iii<row;iii++)
                  {
                  if(num[iii]==mag1[kol-1])
                     {
                     if((OrderClosePrice()>=OrderOpenPrice()&&OrderType()==0)||(OrderClosePrice()<=OrderOpenPrice()&&OrderType()==1))res1[kol-1]="CL+";                     
                     if((OrderClosePrice()>=OrderTakeProfit()&&OrderTakeProfit()!=0&&OrderType()==0)||(OrderClosePrice()<=OrderTakeProfit()&&OrderType()==1))res1[kol-1]="TP";
                     if((OrderClosePrice()<OrderOpenPrice()&&OrderType()==0)||(OrderClosePrice()>OrderOpenPrice()&&OrderType()==1))res1[kol-1]="CL-";
                     if((OrderClosePrice()<=OrderStopLoss()&&OrderType()==0)||(OrderClosePrice()>=OrderStopLoss()&&OrderStopLoss()!=0&&OrderType()==1))res1[kol-1]="SL";
                     //break; 
                     }
                  
                  }      
               if(Sound)Alert("Îðäåð çàðêðûëñÿ ñ êîäîì çàâåðøåíèÿ - ",res1[kol-1]);
               if(nn>=0)//èçìåíÿåì ìàññèâ îðäåðîâ
                        {   
                        while(nn<ord)
                                 {
                                 if(ortic[nn+1]!=0)
                                          {
                                          ortic[nn]=ortic[nn+1];
                                          ormag[nn]=ormag[nn+1];
                                          ortrade[nn]=ortrade[nn+1];
                                          ortic[nn+1]=0;
                                          ormag[nn+1]=0;
                                          ortrade[nn+1]=0;
                                          }
                                 else break;
                                 nn++;
                                 }   
                        }
               ord--;
               ArrayResize(ortrade,ord);
               ArrayResize(ormag,ord);
               ArrayResize(ortic,ord);               
               }
            }
         }
      flag11=1;
      x=OrdersTotal();
      }
   if(x<OrdersTotal())//äîáàâëåì íîâûå îðäåðà ê ìàññèâó
            {
             cnt=OrdersTotal()-x;
             for(i=OrdersTotal()-1;i>OrdersTotal()-1-cnt;i--)
               {
               OrderSelect(i, SELECT_BY_POS);
               if(Symbol()==OrderSymbol())
                 {
                 ord++;
                 ArrayResize(ortrade,ord);
                 ArrayResize(ormag,ord);
                 ArrayResize(ortic,ord);               
                 ArrayResize(res1,ord);
                 ArrayResize(mag1,ord);
                 ortic[ord-1]=OrderTicket();
                 ormag[ord-1]=OrderMagicNumber();
                 mag1[ord-1]=OrderMagicNumber();
                 res1[ord-1]="OR";
                 ortrade[ord-1]=OrderType();               
                 }
              } 
            kol=ord;
            flag11=1;
            x=OrdersTotal();
            }
   if(flag1==1)//åñëè óñëîâèÿ íàñòóïèëè îòêðûâàåì îðäåðà èç ñïèñêà
      {
      for(iii=0;iii<row;iii++)
         {
         if(numfrom[iii]==magic)
            {
            if(StringFind(result,res[iii])!=-1)
               {
               flag2=OpenOrders(trade[iii],lots[iii],price[iii],stopl[iii],takep[iii],num[iii]);
               if(flag2==1)
                  {
                  Alert("Îøèáêà îòêðûòèÿ îðäåðà! Âñÿ öåïî÷êà íàðóøåíà! Ïåðåïðîâåðüòå ôàéë êîíôèãóðàöèè!!");
                  return(0);
                  }
               }
            }
         }
      return(0);
      }
   if(flag11==1)//åñëè óñëîâèÿ íàñòóïèëè îòêðûâàåì îðäåðà èç ñïèñêà
      {
      for(i=0;i<kol;i++)
         {
         for(iii=0;iii<row;iii++)
            {
            if(numfrom[iii]==mag1[i])
               {
               if((StringFind(res1[i],res[iii])!=-1&&res1[i]!="OR")||(res[iii]=="CL"&&res1[i]!="OP"&&res1[i]!="OR")||(res[iii]=="CL+"&&res1[i]=="TP")||(res[iii]=="CL-"&&res1[i]=="SL"))
                  {
                  flag2=OpenOrders(trade[iii],lots[iii],price[iii],stopl[iii],takep[iii],num[iii]);
                  if(flag2==1)
                     {
                     Alert("Îøèáêà îòêðûòèÿ îðäåðà! Âñÿ öåïî÷êà íàðóøåíà! Ïåðåïðîâåðüòå ôàéë êîíôèãóðàöèè!!");
                     return(0);
                     }
                  }
               if(StringFind(res1[i],res[iii])!=-1&&res1[i]=="OR")
                  {
                  res1[i]="NO";
                  flag2=OpenOrders(trade[iii],lots[iii],price[iii],stopl[iii],takep[iii],num[iii]);
                  if(flag2==1)
                     {
                     Alert("Îøèáêà îòêðûòèÿ îðäåðà! Âñÿ öåïî÷êà íàðóøåíà! Ïåðåïðîâåðüòå ôàéë êîíôèãóðàöèè!!");
                     return(0);
                     }
                  }
               }
            }
         }
      return(0);
      }
   if(ord==0&&(flag3==0||loop))flag2=OpenOrders(trade[0],lots[0],price[0],stopl[0],takep[0],1);//åñëè îòêðûòûõ îðäåðîâ íåò, çàïóñêàåì ïåðâûé
   flag3=1;
   if(flag2==1)
      {
      Alert("Îøèáêà îòêðûòèÿ îðäåðà! Âñÿ öåïî÷êà íàðóøåíà! Ïåðåïðîâåðüòå ôàéë êîíôèãóðàöèè!!");
      return(0);
      }
   
   return(0);
  }
//+------------------------------------------------------------------+
int OpenOrders(int trad, double lot, string pr, string sl, string tp, int magc)//ôóíêöèÿ îòêðûòèÿ îðäåðîâ
   {
      double stop,take,prc;
      int cnt,ticket,err;   
      if(StrToDouble(pr)!=0)prc= NormalizeDouble(StrToDouble(pr),Digits);
      else
         {
         if(StringSubstr(StringLower(pr),0,3)=="ask")
            {
            if(StringSubstr(pr,3,1)=="+")prc=Ask+StrToInteger(StringSubstr(pr,4))*Point;
            else prc=Ask-StrToInteger(StringSubstr(pr,4))*Point;
            }
         if(StringSubstr(StringLower(pr),0,3)=="bid")
            {
            if(StringSubstr(pr,3,1)=="+")prc=Bid+StrToInteger(StringSubstr(pr,4))*Point;
            else prc=Bid-StrToInteger(StringSubstr(pr,4))*Point;
            }
         } 
      if(trad==0)prc=Ask;
      if(trad==1)prc=Bid;
      if(MathFloor(StrToDouble(sl))==StrToInteger(sl))
         {
         if(MathMod(trad,2)==0)stop=prc-StrToInteger(sl)*Point;
         else stop=prc+StrToInteger(sl)*Point;
         }
      else stop= NormalizeDouble(StrToDouble(sl),Point);
      if(StrToDouble(sl)==0)stop=0;
      if(MathFloor(StrToDouble(tp))==StrToInteger(tp))
         {
         if(MathMod(trad,2)==0)take=prc+StrToInteger(tp)*Point;
         else take=prc-StrToInteger(tp)*Point;
         }
      else take= NormalizeDouble(StrToDouble(tp),Point);
      if(StrToDouble(tp)==0)take=0;
      //Print("SL - ",stop," TP - ",take);
      if(trad==0)//áàé îðäåð
         {
         if((take==0||take-Bid>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)&&Bid-stop>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
            {
            for(cnt=0;cnt<5;cnt++)
               {
               RefreshRates();
               ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,50,stop,take,"",magc,0,CLR_NONE);
               if(ticket<0)
                  {
                  err=GetLastError();
                  Print("Îøèáêà - ",err);
                  if(StrToInteger(err)<135||StrToInteger(err)>141)return(1);
                  }
               else 
                  {
                  return(0);
                  }
               }            
            }
         else 
            {
            Print("Îðäåð Buy íå óñòàíîâëåí - íåïðàâèëüíî çàäàíû óðîâíè ñòîïîâ èëè òåéêîâ! ");
            return(1);
            }
         }
      if(trad==1)//sell îðäåð
         {
         if((stop==0||stop-Ask>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)&&Ask-take>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
            {
            for(cnt=0;cnt<5;cnt++)
               {
               RefreshRates();
               ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,50,stop,take,"",magc,0,CLR_NONE);
               if(ticket<0)
                  {
                  err=GetLastError();
                  Print("Îøèáêà - ",err);
                  if(StrToInteger(err)<135||StrToInteger(err)>141)return(1);
                  }
               else 
                  {
                  return(0);
                  }
               }            
            }
         else 
            {
            Print("Îðäåð Sell íå óñòàíîâëåí - íåïðàâèëüíî çàäàíû óðîâíè ñòîïîâ èëè òåéêîâ! ");
            return(1);
            }
         }
      if(trad==2)//áàéëèìèò îðäåð
         {
         if((take==0||take-prc>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)&&prc-stop>(MarketInfo(Symbol(),MODE_SPREAD)+MarketInfo(Symbol(),MODE_STOPLEVEL))*Point
         &&Ask-prc>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
            {
            for(cnt=0;cnt<5;cnt++)
               {
               RefreshRates();
               ticket=OrderSend(Symbol(),OP_BUYLIMIT,lot,prc,50,stop,take,"",magc,0,CLR_NONE);
               if(ticket<0)
                  {
                  err=GetLastError();
                  Print("Îøèáêà - ",err);
                  if(StrToInteger(err)<135||StrToInteger(err)>141)return(1);
                  }
               else 
                  {
                  return(0);
                  }
               }            
            }
         else 
            {
            Print("Îðäåð BuyLimit íå óñòàíîâëåí - íåïðàâèëüíî çàäàíû óðîâíè öåí, ñòîïîâ èëè òåéêîâ! ");
            return(1);
            }
         }         
      if(trad==3)//selllimit îðäåð
         {
         if((stop==0||stop-prc>(MarketInfo(Symbol(),MODE_SPREAD)+MarketInfo(Symbol(),MODE_STOPLEVEL))*Point)&&prc-take>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point
         &&prc-Bid>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
            {
            for(cnt=0;cnt<5;cnt++)
               {
               RefreshRates();
               ticket=OrderSend(Symbol(),OP_SELLLIMIT,lot,prc,50,stop,take,"",magc,0,CLR_NONE);
               if(ticket<0)
                  {
                  err=GetLastError();
                  Print("Îøèáêà - ",err);
                  if(StrToInteger(err)<135||StrToInteger(err)>141)return(1);
                  }
               else 
                  {
                  return(0);
                  }
               }            
            }
         else 
            {
            Print("Îðäåð SellLimit íå óñòàíîâëåí - íåïðàâèëüíî çàäàíû óðîâíè öåí, ñòîïîâ èëè òåéêîâ! ");
            return(1);
            }
         }
      if(trad==4)//áàéñòîï îðäåð
         {
         if((take==0||take-prc>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)&&prc-stop>(MarketInfo(Symbol(),MODE_SPREAD)+MarketInfo(Symbol(),MODE_STOPLEVEL))*Point
         &&prc-Ask>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
            {
            for(cnt=0;cnt<5;cnt++)
               {
               RefreshRates();
               ticket=OrderSend(Symbol(),OP_BUYSTOP,lot,prc,50,stop,take,"",magc,0,CLR_NONE);
               if(ticket<0)
                  {
                  err=GetLastError();
                  Print("Îøèáêà - ",err);
                  if(StrToInteger(err)<135||StrToInteger(err)>141)return(1);
                  }
               else 
                  {
                  return(0);
                  }
               }            
            }
         else 
            {
            Print("Îðäåð BuyStop íå óñòàíîâëåí - íåïðàâèëüíî çàäàíû óðîâíè öåí, ñòîïîâ èëè òåéêîâ! ");
            return(1);
            }
         }         
      if(trad==5)//sellstop îðäåð
         {
         if((stop==0||stop-prc>(MarketInfo(Symbol(),MODE_SPREAD)+MarketInfo(Symbol(),MODE_STOPLEVEL))*Point)&&prc-take>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point
         &&Bid-prc>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
            {
            for(cnt=0;cnt<5;cnt++)
               {
               RefreshRates();
               ticket=OrderSend(Symbol(),OP_SELLSTOP,lot,prc,50,stop,take,"",magc,0,CLR_NONE);
               if(ticket<0)
                  {
                  err=GetLastError();
                  Print("Îøèáêà - ",err);
                  if(StrToInteger(err)<135||StrToInteger(err)>141)return(1);
                  }
               else 
                  {
                  return(0);
                  }
               }            
            }
         else 
            {
            Print("Îðäåð SellStop íå óñòàíîâëåí - íåïðàâèëüíî çàäàíû óðîâíè öåí, ñòîïîâ èëè òåéêîâ! ");
            return(1);
            }
         }
  }
   
int ordtoint(string tip)//ïåðåâîäèì ñäåëêè íà ÿçûê ÌÒ
   {
   int type=6;
   tip=StringLower(tip);
   if(tip=="buy")type=0;
   if(tip=="sell")type=1;
   if(tip=="buy-limit"||tip=="buy limit"||tip=="buylimit")type=2;
   if(tip=="sell-limit"||tip=="sell limit"||tip=="selllimit")type=3;
   if(tip=="buy-stop"||tip=="buy stop"||tip=="buystop")type=4;
   if(tip=="sell-stop"||tip=="sell stop"||tip=="sellstop")type=5;
   return(type);
   }
string StringLower(string s) {//ïåðåâîäèì âñå â íèæíèé ðåãèñòð
  int c, i, k=StringLen(s), n;
   for (i=0; i<k; i++) {
     n=0;
     c=StringGetChar(s, i);
     if (c>64 && c<91) n=c+32;    // A-Z -> a-z
     if (n>0) s=StringSetChar(s, i, n);
   }
  return(s);
   }
   

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