Breakthroughev_2_0efor_tester

Author: allcaponne
Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each bar
Orders Execution
It automatically opens orders when conditions are reachedChecks for the total of closed ordersChecks for the total of open ordersIt can change open orders parameters, due to possible stepping strategyIt Closes Orders by itself
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Breakthroughev_2_0efor_tester
//+------------------------------------------------------------------+
//|                                                 Breakthrough.mq4 |
//|                                                       allcaponne |
//|                                                    skyshop@bk.ru |
//+------------------------------------------------------------------+
#property copyright "allcaponne"
#property link      "skyshop@bk.ru"
extern double diffpoints=30;// ðàçíèöà â ïóíêòàõ ìåæäó ìàêñèìàëüíûìè èëè ìèíèìàëüíûìè áàðàìè
extern int allbars=6240;// êîë-âî áàðîâ çà ãîä, ïî êîòîðûì îòôèëüòðîâûâàåòñÿ âûñòàâëåíèå îðäåðà
extern int startpoint=2;// áàð ñ êîòîðîãî íà÷èíàåòñÿ ïîèñê ìàêñ èëè ìèí, îòñ÷åò íà÷èíàåò ñ 0 áàðà
extern double drop=30;// íà êàêîì ðàññòîÿíèè + ñïðåä óñòàíàâëèâàåòñÿ îðäåð îò âûáðàííîãî ìàêñèìóìà èëè ìèíèìóìà
extern double lotrisk=5;// ðàçìåð ñóììû ñðåäñòâ êîòîðûìè ìû ìîæåì ðèñêíóòü íà îäíó ñäåëêó, åñëè ñòîâèì ñòîï
extern double StopLoss=370;
extern double TakeProfit=1230;
extern double NoLoss=100;// êîëè÷åñòâî ïóíêòîâ êîòîðûå öåíà ïðîõîäèò â ïðèáûëü è ïîñëå ÷åãî ñòîï ëîññ ïåðåìåùàåòñÿ íà öåíó îòêðûòèÿ ñäåëêè òî åñòü íà òî÷êó áåçóáûòêà.
extern double TrailingStop=330;// Ïðè ïðîõîæäåíèè öåíû â ïðèáûëü íà óêàçàííîå êîë-âî ïóíêòîâ, òî ñòîï ëîññ ïåðåäâèãàåòñÿ íà êîë-âî ïóíêòîâ óêàçàííûõ â TrailingStep.
extern double TrailingStep=150;
extern double Persent=30;// Çàäàííûé ïðîöåíò, ñóììà ìàêñèì îòêðûòûõ ñäåëîê íà âñåõ èíñòðóìåíòàõ 
extern int slippage=30;
extern int magic=777;
//---------------------Ãëîáàëüíûå ïåðåìåííûå-------------------------+
double variation=250;// èçìåíåíèå öåíû íà áëèæ 24 áàðàõ, íóæíî äëÿ îòáðàêîâêè ñèãíàëîâ ïðè ñëàáîì ðûíêå(ñëàáîì êîëåáàíèè öåíû)
int ticketbuy,ticketsell;
int Experts;// Êîëè÷. ýêñïåðòîâ çàãðóæåííûõ â òåðìèíàëå
double Money;// Èñêîìûå ñðåäñòâà
string Quantity="GV_Quantity";// Èìÿ GV-ïåðåìåííîé
//-------------------------------------------------------------------+



//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
Experts=GlobalVariableGet(Quantity);// Ïîëó÷èì òåê. çíà÷
Experts=Experts+1;// Êîëè÷. ýêñïåðòîâ
GlobalVariableSet(Quantity, Experts);// Íîâîå çíà÷åíèå   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
Experts = GlobalVariableGet(Quantity);// Ïîëó÷èì òåê. çíà÷.       
   if (Experts ==1)// Åñëè ýêñïåðò îäèí..
      GlobalVariableDel(Quantity); //..óäàëÿåì GV-ïåðåìåí
   else// À èíà÷å..
      GlobalVariableSet(Quantity, Experts-1);//..óìåíüøàåì íà 1
      Alert("Ýêñïåðò âûãðóæåí èç îêíà ",Symbol());// Ñîîáù. î âûãðóçêå    
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
//----------------------------------------------------------------------------------------------------------------------+
double spread=MarketInfo(Symbol(),MODE_SPREAD)*Point;
bool flagbuy,flagbuy2;// ôëàã äëÿ îòêðûòèÿ îðäåðà, åñëè îí true çåíà÷èò îðäåð îòêðîåòñÿ             
bool flagsell,flagsell2;// ôëàã äëÿ îòêðûòèÿ îðäåðà, åñëè îí true çåíà÷èò îðäåð îòêðîåòñÿ    
double difvarbuy,difvarsell;
double prbuy,prsell;
double opbuy,opsell;
int i,Kol,convulsion;
double editlot,pips,lots,countpips,countlots,stoploss,orclosepr,counstoploss,countorclosepr;
double Lots_New;
int  CountCicle=0;//---------------------------------------------+
double LineBuff1[255];//                                         |
int Poz=0;//         ïåðåìåííûå äëÿ ðàçáîðà ñòðîêè ïîëó÷àåìîé    |
int parser=0;//             èç èíäèêàòîðà                        |
CountCicle=0;//--------------------------------------------------+
double priceallmax,priceallmin;
int seebars;//êîë-âî áàðîâ ñ íà÷àëà íåäåëè
double lot;
int history_orders;
//----------------------------------------------------------------------+
// Âûñòàâëåíèå îðåäåðîâ â ïîíåäåëüíèê, êîòîðûå áûëè óäàëåííû â ïÿòíèöó  |
//----------------------------------------------------------------------+
   if(DayOfWeek()==1&&Hour()==0&&Minute()>0)
   {
      int obj_total=ObjectsTotal();
      for(i=0;i<obj_total;i++)
      {
         string LineName=ObjectName(i);
         if(ObjectType(LineName)!=OBJ_HLINE)continue;// åñëè îáúåêò íà ãðàôèêå íå ëèíèÿ ñ äàííûìè îá îòëîæåííèêå, òî èäåì äàëüøå
         string LineText=ObjectDescription(LineName);
         
         while(parser<=StringLen(LineText)-1)
         {
            if(StringFind(LineText,";",parser)==parser)
            {
               LineBuff1[CountCicle]=StrToDouble(StringSubstr(LineText,Poz,parser));
               Poz=parser+1;
               if(LineBuff1[CountCicle]>0)
               {
                  CountCicle++;
               }
            }
            parser++;
         }
         
         string strOrderType=LineBuff1[0];
         int iOrderType=StrToInteger(strOrderType);
         
         string strOrderLots=LineBuff1[1];
         double dOrderLots=StrToDouble(strOrderLots);
         double nOrderLots=NormalizeDouble(dOrderLots,2);
         
         string strOrderOpenPrice=LineBuff1[2];
         double dOrderOpenPrice=StrToDouble(strOrderOpenPrice);
         double nOrderOpenPrice=NormalizeDouble(dOrderOpenPrice,Digits);
         
         string strOrderStopLoss=LineBuff1[3];
         double dOrderStopLoss=StrToDouble(strOrderStopLoss);
         double nOrderStopLoss=NormalizeDouble(dOrderStopLoss,Digits);
         
         string strOrderTakeProfit=LineBuff1[4];
         double dOrderTakeProfit=StrToDouble(strOrderTakeProfit);
         double nOrderTakeProfit=NormalizeDouble(dOrderTakeProfit,Digits);
         
         string strOrderMagicNumber=LineBuff1[5];
         int iOrderMagicNumber=StrToInteger(strOrderMagicNumber);
     
         double margin=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
         
         RefreshRates();
         bool go=false;//ïðîâåðêà íà ñîîòâåòñâèå öåíû îòêðûòèÿ óäàëåííîãî îðäåðà ðåàëüíîé ñèòóàöèè íà ðûíêå
         if(iOrderType==OP_BUYSTOP)//â ñëó÷àå åñëè öåíà íàì íå ïîäõîäèò, òî äàííûå ïî îðäåðó óäàëÿþòñÿ è îí íå âûñòàâëÿåòñÿ
         {
            if(Ask<nOrderOpenPrice-margin)
            {
               go=true;   
            }   
         }
         if(iOrderType==OP_SELLSTOP)
         {
            if(Bid>nOrderOpenPrice+margin)   
            {
               go=true;   
            }
         }// òóò ôóíêöèÿ ïðîâåðêè çàêàí÷èâàåòñÿ
         if(go==true)
         {
            if(ObjectDelete(LineName)==true)
            {
               RefreshRates();
               int ticketdel=OrderSend(Symbol(),iOrderType,nOrderLots,nOrderOpenPrice,slippage,nOrderStopLoss,nOrderTakeProfit,"Delete order",iOrderMagicNumber,0,CLR_NONE);      
               if(ticketdel>=0)
               {
                  Print("Îðäåð ñ òèêåòîì - ",ticketdel," áûë óñòàíîâëåí èç óäàëåííûõ");   
               }
               if(ticketdel<0)
               {   
                  Print("Âîçíèêëà îøèáêà ",GetLastError());
                  Alert(iOrderType);
               }
            }
         }
         else
         {   
            if(ObjectDelete(LineName)==true)
            {
               Print("Äàííûå ïî îðäåðó áûëè óäàëåííû, òàê êàê öåíà íå ñîîòâåòñòâóåò òðåáîâàíèÿì");
               continue;
            }
         }
      }  
   }
//----------------------------------------------------------------------+
if(Minute()>=50)
{
//-----------------------------------------------------+
//            Ðàçìåð ñóììû ñðåäñòâ äëÿ ñîâåòíèêà       |
//-----------------------------------------------------+
double Depo=AccountBalance();// ñóììà ñðåäñòâ íà ñ÷åòå 
int New_Experts=GlobalVariableGet(Quantity);// Íîâîå êîëè÷. ýêñï.   
   if(Experts==New_Experts)
   {   
      Money=Depo*Persent/100/Experts;// ñóììà ñðåäñò äëÿ ñîâåòíèêà        
      Money=NormalizeDouble(Money,2);// 
   }
   if (Experts!=New_Experts)// Åñëè èçìåíèëîñü     
   {      
      Experts=New_Experts;// Òåïåðü òåêóù. òàêîå      
      Money=Depo*Persent/100/Experts;// Íîâîå çíà÷. ñðåäñòâ            
      Money=NormalizeDouble(Money,2);
   }
//----------------------------------------------------------+

//----------------------------------------------------------------+
// Ðàçìåð ñòàðòîâîãî ëîòà â çàâèñèìîñòè îò êîë-âà ñðåäñòâ è ñòîïà |
//----------------------------------------------------------------+
double SzMnPr=MarketInfo(Symbol(),MODE_TICKVALUE);
double livemoney=Money*lotrisk/100;
livemoney=NormalizeDouble(livemoney,2);
double pricepoint=livemoney/StopLoss;// Ñòîèìîñòü 1 ïóíêòà ïðè íàøåì ðèñêå
pricepoint=NormalizeDouble(pricepoint,2);
lot=pricepoint/SzMnPr;// Ðàñ÷åò ëîòà
lot=NormalizeDouble(lot,2);
//----------------------------------------------------------------+

//----------------------------------------------------------+
//    îïðåäåëåíèå ðàçìåðà ëîòà ïðè óáûòî÷íîé ñäåëêå         |
//----------------------------------------------------------+                                                             
   history_orders=OrdersHistoryTotal();
   for(i=history_orders-1;i>=0;i--)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)&&OrderSymbol()==Symbol())//Âûáèðàåòñÿ îðäåð ñ êîíöà, åñëè íàéäåí íàø îðäåð, òî òîãäà öèêë ïðåðûâàåòñÿ
      {                                                                    
         if(OrderProfit()==0)// åñëè ïîïàâøèéñÿ îðäåð çàêðûëñÿ â 0, òî òîãäà èùåì ñëåäóþùèé îðäåð
         {
            continue;
         }   
         if(OrderType()==OP_BUY)// åñëè ïðèáûëè ïî îðäåðó íà èñòîðèè + èëè -, òî îïðåäåëÿåì åãî òèï
         {
            pips=OrderClosePrice()-OrderOpenPrice();// îïðåäåëÿåì êîë-âî ïèïñîâ ïðèáûëè èëè óáûòêà
         }
         if(OrderType()==OP_SELL)// åñëè ïðèáûëè ïî îðäåðó íà èñòîðèè + èëè -, òî îïðåäåëÿåì åãî òèï
         {
            pips=OrderOpenPrice()-OrderClosePrice();// îïðåäåëÿåì êîë-âî ïèïñîâ ïðèáûëè èëè óáûòêà
         }
         countpips=pips/Point;   
         break;// åñëè íàéäåí íóæíûé îðäåð, òî öèêë îñòàíàâëèâàåòñÿ
      }   
   }
   if(countpips<0)
   {
      editlot=lot*1.5;
      editlot=NormalizeDouble(editlot,2);
   }     
   else 
   {
      editlot=lot;  
   }
//-----------------------------------------------------------+  
//-----------------------------------------------------------+
//       Ïðîâåðêà ðàçìåðà ëîòà 
//-----------------------------------------------------------+
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);//Ñòîèì. 1 ëîòà
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);// Ìèí. ðàçìåð. ëîòîâ
double Step=MarketInfo(Symbol(),MODE_LOTSTEP);//Øàã èçìåíåí ðàçìåðà
double Free=AccountFreeMargin();// Ñâîáîäíûå ñðåäñòâà
   if(editlot>0)// Ëîòû çàäàíû ÿâíî..
   {                                        
      double costorder=editlot*One_Lot;// Ñòîèìîñòü îðäåðà
      if(costorder<=AccountFreeMargin())// Ñðåäñòâ õâàòàåò..
      {
         Lots_New=editlot;// ..ïðèíèìàåì çàäàííîå
      }
      else// Åñëè íå õâàòàåò..
      {
         Lots_New=MathFloor(Free/One_Lot/Step)*Step;// Ðàñ÷¸ò ëîòîâ
      }
   }
   if(Lots_New<Min_Lot)// Åñëè ìåíüøå äîïóñò..
   {
      Lots_New=Min_Lot;// .. òî ìèíèàìàëüíûé
   }
   
   if(Lots_New*One_Lot>AccountFreeMargin())// Íå õâàòàåò äàæå íà ìèíèìàëüíûé ëîò
   {                                         
      Print("Íå õâàòàåò äåíåã äàæå íà ìèíèìàëüíûé ëîò");// Ñîîáùåíèå..
      return(0);// ..è âûõîä 
   }
//--------------------------------------------------------------------------+
   for(i=0;i<120;i++)// ôóíêöèÿ äëÿ îïðåäåëåíèÿ êîë-âà áàðîâ ñ íà÷àëà íåäåëè
   {
      datetime TimeBar=Time[i];
      int DayBar=TimeDayOfWeek(TimeBar);
      int HourBar=TimeHour(TimeBar);
      if(DayBar>=1&&HourBar>0)
      {
         continue;
      }
      if(DayBar==1&&HourBar==0)
      {
         seebars=i;
         break;
      }
   } 
   if(seebars>=3)
   {   
      int nummax=iHighest(Symbol(),0,MODE_HIGH,seebars-startpoint,startpoint);// îïðåäåëåíèå íîìåðà áàðà ñ ìàêñèì öåíîé íà ó÷àñòêå â ðàçìåðå seebars
      double pricemax=iHigh(Symbol(),0,nummax);// ìàêñèìàëüíàÿ öåíà ýòîãî áàðà
      
      int nummin=iLowest(Symbol(),0,MODE_LOW,seebars-startpoint,startpoint);// íîìåð áàðà ñ ìèíèì öåíîé
      double pricemin=iLow(Symbol(),0,nummin);// ìèíèìàëüíàÿ öåíà âûáðàíîãî áàðà

      if(seebars>=11)
      {
         int numwavemax=iHighest(Symbol(),0,MODE_HIGH,seebars-1,1);//----------------------------+
         int numwavemin=iLowest(Symbol(),0,MODE_LOW,seebars-1,1);//                              |    
         double prwavemax=iHigh(Symbol(),0,numwavemax);//                                        |
         double prwavemin=iLow(Symbol(),0,numwavemin);//                                         |
         double difwave=prwavemax-prwavemin;//                 îïðåäåëåíèå øóìà íà áëèæàéøèõ     |  
         if(difwave>=variation*Point)//                                 áàðàõ íà èñòîðèè         |
         {                     //                                                                |
            convulsion=1;    //                                                                  |
         }                    //                                                                 |  
      }                       //                                                                 |  
      else//                                                                                     |     
      {        //                                                                                |  
         convulsion=1;//                                                                         |  
      }//----------------------------------------------------------------------------------------+
      
      double max=High[0];
      double min=Low[0];
//+----------------------------------------------------+      
      if(pricemax>=max)
      {
         difvarbuy=pricemax-max;// ðàçíèöà â ïóíêòàõ ìåæäó öåíàìè áàðîâ
         prbuy=pricemax;// öåíà îò êîòîðîé áóäåò îòñ÷èòûâàòüñÿ áàéñòîï îðäåð
      }
      if(max>pricemax)
      {
         difvarbuy=max-pricemax;// ðàçíèöà â ïóíêòàõ ìåæäó öåíàìè áàðîâ
         prbuy=max;// öåíà îò êîòîðîé áóäåò îòñ÷èòûâàòüñÿ áàéñòîï îðäåð
      }
//-----------------------------------------------------|      
//              îòêðûòèå buy îðäåðà                    +                                                       
//-----------------------------------------------------|      
      if(difvarbuy<=diffpoints*Point&&max>=High[1])// óñëîâèÿ óñòàíîâêè áàéñòîï îðäåðà
      {
         opbuy=prbuy+spread+(drop*Point);// öåíà ïî êîòîðîé óñòàíàâëèâàåòñÿ áàéñòîï îðäåð, äëÿ àëüïàðè 30, äëÿ îñòàëüíûõ 3
         for(i=nummax;i<allbars;i++)//ïðîâåðêà ïîçâîëÿåò ëè áëèæàéøèå áàðû óñòàíîâèòü îðäåð
         {
            if(High[i]>=opbuy)
            {
               priceallmax=High[i];
               break;    
      
            }
            if(i==allbars-1)
            {
               priceallmax=0;
               break;
            }
         }   
         if(priceallmax==0)
         {
            flagbuy2=true;
         }      
         if(priceallmax>0)
         {
            if(priceallmax-opbuy>NoLoss*Point+spread)// ïðîâåðêà åñòü ëè îïðåäåë ðàçíèöà â ïóíêòàõ ìåæäó öåíîé îòêðûòèÿ îðäåðà è áëèæàéøèì ìàêñèìóìîì íà èñòîðèè
            {
               flagbuy2=true;
            }
            else
            {
               flagbuy2=false;  
            }
         }
         if(flagbuy2==true&&Minute()>=57)
         {
            flagbuy=true;   
            for(i=0;i<OrdersTotal();i++)// ôóíêöèÿ ïðîâåðêè åñòü ëè îòêðûòûé îðäåð íà äàííîì áàðå, äëÿ òîãî ÷òî áû íå îòêðûâàòü íîâûå
            {   
               OrderSelect(i,SELECT_BY_POS);
               if(OrderType()==OP_BUYSTOP&&OrderMagicNumber()==magic&&OrderSymbol()==Symbol()&&OrderOpenTime()>=Time[0])
               {
                  flagbuy=false;
               }
            }
               OrderSelect(ticketbuy,SELECT_BY_TICKET);// ïðîâåðêà íà óñòàíîâêó íîâîãî îòëîæíèêà, åñëè íîâûé îòëîæíè äîëæåí áûòü
               if(OrderType()==OP_BUYSTOP&&OrderMagicNumber()==magic&&OrderSymbol()==Symbol())// ðÿäîì ñ óæå óñòàíîâäåííûì, òî òàêîé îðäåð íå óñòàíàâëèâàåì
               {
                  double comparebuy=OrderOpenPrice();//ðàçíèöà äîëæíû áûòü íå ìåíåå 25 ïóíêòîâ
                  if(comparebuy>opbuy)
                  {
                     double totalbuy=comparebuy-opbuy/Point;   
                  }
                  if(comparebuy<opbuy)
                  {
                     totalbuy=opbuy-comparebuy/Point;
                  }
                  if(totalbuy<250)//äëÿ 5 çíàêîâ 250 ïóíêòîâ, äëÿ îáû÷íûõ 25
                  {
                     flagbuy=false;
                  }
               }
            if(flagbuy==true&&convulsion==1)
            {
               ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots_New,opbuy,slippage,opbuy-StopLoss*Point,opbuy+TakeProfit*Point,"Buy stop order",magic,0,Green);
               string filenamebuy=StringConcatenate("Order buy","_",Hour(),"_",Minute(),"_",Day(),"_",Month(),"_",".JPG");
               WindowScreenShot(filenamebuy,1024,768,0,3,0);
            }  
         }        
      }
//+------------------------------------------------------+
      if(pricemin<=min)
      {
         difvarsell=min-pricemin;// ðàçíèöà â ïóíêòàõ ìåæäó öåíàìè áàðîâ
         prsell=pricemin;// îò êàêîé öåíû áóäåò îòñ÷èòûâàòüñÿ öåíà îòêðûòèÿ îðäåðà
      }
      if(min<pricemin)
      {
         difvarsell=pricemin-min;// ðàçíèöà â ïóíêòàõ ìåæäó öåíàìè áàðîâ
         prsell=min;// îò êàêîé öåíû áóäåò îòñ÷èòûâàòüñÿ öåíà îòêðûòèÿ îðäåðà   
      }
//--------------------------------------------------------|
//                îòêðûòèå sell îðäåðà                    +
//--------------------------------------------------------|
      if(difvarsell<=diffpoints*Point&&min<=Low[1])// óñëîâèÿ óñòàíîâêè îðäåðà ñåëñòîï
      {
         opsell=prsell-spread-drop*Point;// öåíà ïî êîòîðîé óñòàíàâëèâàåòñÿ ñåëñòîï îðäåð, äëÿ àëüïàðè 30, äëÿ îñòàëüíûõ 3
         for(i=nummin;i<allbars;i++)
         {
            if(Low[i]<=opsell)
            {
               priceallmin=Low[i];
               break;    
      
            }
            if(i==allbars-1)
            {
               priceallmax=0;
               break;
            }
         }   
         if(priceallmin==0)
         {
            flagsell2=true;
         }      
         if(priceallmin>0)
         {
            if(opsell-priceallmin>=NoLoss*Point+spread)// ïðîâåðêà åñòü ëè îïðåäåë ðàçíèöà â ïóíêòàõ ìåæäó öåíîé îòêðûòèÿ îðäåðà è áëèæàéøèì ìèíèìóìîì íà èñòîðèè
            {
               flagsell2=true;
            }
            else
            {
               flagsell2=false;  
            }
         }
         if(flagsell2==true&&Minute()>=57)
         {
            flagsell=true;   
            for(i=0;i<OrdersTotal();i++)
            {   
               OrderSelect(i,SELECT_BY_POS);
               if(OrderType()==OP_SELLSTOP&&OrderMagicNumber()==magic&&OrderSymbol()==Symbol()&&OrderOpenTime()>=Time[0])
               {
                  flagsell=false;
               }
            }
               OrderSelect(ticketsell,SELECT_BY_TICKET);// ïðîâåðêà íà óñòàíîâêó íîâîãî îòëîæíèêà, åñëè íîâûé îòëîæíè äîëæåí áûòü// ïðîâåðêà, åñëè ñôîðìèðîâàëñÿ ñèãíàë è åñòü îòëîæåííèê, òî öåíà îòêðûòèÿ íîâîãî îðäåðà
               if(OrderType()==OP_SELLSTOP&&OrderMagicNumber()==magic&&OrderSymbol()==Symbol())// íå äîëæíû áûòü ðÿäîì ñ öåíîé óæå óñòàíîâëåííîãî îðäåðà
               {
                  double comparesell=OrderOpenPrice();
                  if(comparesell>opsell)
                  {
                     double totalsell=comparesell-opsell/Point;   
                  }
                  if(comparesell<opsell)
                  {
                     totalsell=opsell-comparesell/Point;
                  }
                  if(totalsell<250)//äëÿ 5 çíàêîâ 250 ïóíêòîâ, äëÿ îáû÷íûõ 25
                  {
                     flagsell=false;
                  }   
               }
            if(flagsell==true&&convulsion==1)
            {
               ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots_New,opsell,slippage,opsell+StopLoss*Point,opsell-TakeProfit*Point,"Sell stop order",magic,0,Green);
               string filenamesell=StringConcatenate("Order sell","_",Hour(),"_",Minute(),"_",Day(),"_",Month(),"_",".JPG");
               WindowScreenShot(filenamesell,1024,768,0,3,0);
            }
         }        
      }
   }//îò if(seebars>=3)
}//îò if(Minute()>50)
//-------------------------------------------------------+
//-------------------------------------------------------|
//               Òðàë äëÿ îòêðûòûõ ïîçèöèé               +
//-------------------------------------------------------|
         for (i=0; i<OrdersTotal(); i++)// íîâûé öèêë ïî âñåì îðäåðàì
         {
            OrderSelect(i,SELECT_BY_POS);
            if(OrderType()==OP_BUY&&OrderSymbol()==Symbol())// ïðîâåðêà òèïà îðäåðà è èíñòðóìåíòà
            {
               if(Bid-OrderOpenPrice()>NoLoss*Point&&OrderOpenPrice()>OrderStopLoss())// óñëîâèÿ óñòàíîâêè ñòîïà â áåçóáûòîê
               {
                  OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Blue);// óñòàíîâêà ñòîðà â áåçóáûòîê
               }         
               if(OrderStopLoss()>=OrderOpenPrice()&&OrderStopLoss()<Bid-(TrailingStop+TrailingStep-10)*Point)// óñëîâèÿ òðàëà îòêðûòîé ïîçèöèè 10 äëÿ àëüïàðè èëè 5 çíàêîâ, òàê -1
               {
                  OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point, OrderTakeProfit(), 0, Blue);// óñòàíîâêà ñòîïà â ïðèáûëü
               }
            }
            if(OrderType()==OP_SELL&&OrderSymbol()==Symbol())// ïðîâåðêà òèïà îðäåðà è èíñòðóìåíòà
            {
               if(OrderOpenPrice()-Ask>NoLoss*Point&&OrderStopLoss()>OrderOpenPrice())// óñëîâèÿ óñòàíîâêè ñòîïà â áåçóáûòîê
               {
                  OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Blue);// óñòàíîâêà ñòîðà â áåçóáûòîê
               }      
               if(OrderStopLoss()<=OrderOpenPrice()&&OrderStopLoss()>Ask+(TrailingStop+TrailingStep-10)*Point)// óñëîâèÿ òðàëà îòêðûòîé ïîçèöèè 10 äëÿ àëüïàðè èëè 5 çíàêîâ, òàê -1
               {
                  OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Blue);// óñòàíîâêà ñòîïà â ïðèáûëü
               }
         
            }
         }
//-------------------------------------------------------------------|
// Óäàëÿþòñÿ âñå îòëîæåííûå îðäåðà â ïÿòíèöó ïåðåä çàêðûòèåì ðûíêà   +
//-------------------------------------------------------------------|
   if(DayOfWeek()==5&&Hour()==21&&Minute()>=55)
   {
      for(i=0;i<OrdersTotal();i++)// öèêë ïî âñåì îðäåðàì
      {   
         if(OrderSelect(i,SELECT_BY_POS)==true)
         {
            if(OrderType()==OP_SELL || OrderType()==OP_BUY)
            {
               if(OrderType()==OP_SELL)
               {
                  RefreshRates();
                  double closeprice=Ask;
               }
               if(OrderType()==OP_BUY)
               {
                  RefreshRates();
                  closeprice=Bid;
               }
               if(OrderClose(OrderTicket(),OrderLots(),closeprice,slippage,CLR_NONE)==true)
               {
                  Print("Çàêðûò ðûíî÷íûé îðäåð, òàê êàê êîíåö íåäåëè, ñ òèêåòîì - ",OrderTicket());   
               }
               else
                  Print("Âîçíèêëà îøèáêà ",GetLastError());   
            }
            if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) 
            {
               int indexwindows=WindowOnDropped();// íîìåð îêíà íà êîòîðîì ðàçìåùåí ýêñïåðò
               string Text=StringConcatenate(DoubleToStr(OrderType(),0),";",DoubleToStr(OrderLots(),2),";",DoubleToStr(OrderOpenPrice(),Digits),";",DoubleToStr(OrderStopLoss(),Digits),";",DoubleToStr(OrderTakeProfit(),Digits),";",DoubleToStr(OrderMagicNumber(),0),";");
               string Name=DoubleToStr(OrderOpenPrice(),Digits);
               if(ObjectCreate(Name,OBJ_HLINE,0,0,OrderOpenPrice())==true) 
               {
                  if(ObjectSetText(Name,Text)==true)
                  {
                     if(OrderDelete(OrderTicket(),CLR_NONE)==true)// óäàëÿåì îðäåð 
                     {
                        Print("Óäàëåí îòëîæåííûé îðäåð");
                     }
                     else
                        Print("Âîçíèêëà îøèáêà ",GetLastError());
                  }
                  else
                        Print("Âîçíèêëà îøèáêà ",GetLastError());
               }
            }
         }
      }   
   }
//-------------------------------------------------------------------+
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 ---