iK_ex_LinReg_v1

Author: Ivan Katsko
Price Data Components
Series array that contains open time of each bar
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
iK_ex_LinReg_v1
//+------------------------------------------------------------------+
//|                                                                  |
//|       Ñîâåòíèê íà îñíîâå                                         |
//|       óòðåííåãî ôëåòà                                            |
//|                             http://www.mql4.com/ru/users/ikatsko |
//+------------------------------------------------------------------+
#property copyright "Ivan Katsko"
#property link      "ICQ:372739628"
//--------------------------------------------------------------- 1 --
#define NONE 0

extern string S3="Öåëü ïðè ïðîáîå îòí. øèðèíû êàíàëà";
extern double t0=2.5;
extern string S5="Ìàêñèìàëüíûé SL â ïóíêòàõ";
extern int MaxSL=50;
extern string S6="Âðåìÿ âõîäà â ðûíîê. Äî: (÷àñ)";
extern string FinishTime = "16:00";
//extern int FinishT=20;
extern string S7="Ïåðèîä äëÿ èíäèêàòîðà Sielense";
extern int PerSil = 12;
extern string S4="Èñïîëüçîâàòü äëÿ ðàñ÷¸òà Close";
extern bool useClose = true;
//extern int useCl=1;
extern string S2="Ïðèìåíÿòü âòîðîé-ðåâåðñíûé âõîä";
extern bool Reverse = true;
//extern int Rev=1;
extern string S1="0 - Íå ðàáîòàòü â ýòîò äåíü íåäåëè";
extern int WorkMo=1;
extern int WorkTu=1;
extern int WorkWe=1;
extern int WorkTh=1;
extern int WorkFr=1;
extern datetime StartDateTime = D'01.01.2010';  //Íà÷àëî ðàáîòû
extern datetime FinishDateTime = D'31.12.2010'; //Êîíåö ðàáîòû
extern double Lots   = 1;            // Æåñòêî çàäàííîå êîëè÷. ëîòîâ ("0" - ñîâåòíèê âûáèðàåò ñàì)
extern double Prots  = 0.07;         // Ïðîöåíò ñâîáîäíûõ ñðåäñòâ
extern int SlipPage     = 3;         // Ïðîñêàëüçûâàíèå êîòèðîêîê - â ïóíêòàõ
 
bool 
//     useClose,
     LookInd=true,
     Msg=true,
     New_Bar=false,                  // Ôëàã íîâîãî áàðà 
     New_Day=false,                  // Ôëàã íîâîãî äíÿ 
     Work_Day=false,                 // Ôëàã ðàáî÷åãî äíÿ
     Cls=false,                      // Êðèòåðèé äëÿ çàêðûòèÿ
     Work=true,                      // Ýêñïåðò áóäåò ðàáîòàòü.
     First=false,                    // Ðàçðåøèòü ïåðâóþ ñäåëêó
     Second=false,                   // Ðàçðåøèòü âòîðóþ ñäåëêó
//     Reverse=false,                  // Êðèòåðèé îòêðûòèÿ îáðàòíîãî îðäåðà
     Opn_B=false,                    // Êðèòåðèé äëÿ îòêðûòèÿ  Buy
     Opn_S=false;                    // Êðèòåðèé äëÿ îòêðûòèÿ  Sell

string Symb,                         // Íàçâàíèå ôèíàíñ. èíñòðóìåíòà
//       FinishTime,
       FinTim;
       
int StPos;

static datetime New_Time;
static datetime New_TimeOfDay;


double dirOpen       = NONE,         // Íàïðàâëåíèå òåêóùåå : ">0" - êóïèòü; "<0" - ïðîäàòü
       Up, Dn,                       // íàïðàâëåíèå ââåðõ/âíèç
       Profit,
       RevUp, RevDn, RevTP, RevSL;
       

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   Fun_New_Day();                      // Îïðåäåëåíèå íà÷àëà íîâîãî áàðà
   
   Fun_New_Bar();                      // Îïðåäåëåíèå íà÷àëà íîâîãî áàðà
//----
   int
      Total,                           // Êîëè÷åñòâî îðäåðîâ â îêíå 
      Tip=-1,                          // Òèï âûáðàí. îðäåðà (B=0,S=1)
      Ticket;                          // Íîìåð îðäåðà
   double
      Lot,                             // Êîëè÷. ëîòîâ â âûáðàííîì îðäåðå
      Lts,                             // Êîëè÷. ëîòîâ â îòêðûâàåìîì îðäåðå
      Min_Lot,                         // Ìèíèìàëüíîå êîëè÷åñòâî ëîòîâ
      Step,                            // Øàã èçìåíåíèÿ ðàçìåðà ëîòà
      Free,                            // Òåêóùèå ñâîáîäíûå ñðåäñòâà
      One_Lot,                         // Ñòîèìîñòü îäíîãî ëîòà
      SL,                              // SL âûáðàííîãî îðäåðà 
      TP;                              // TP âûáðàííîãî îðäåðà
   bool
      Ans  =false;                     // Îòâåò ñåðâåðà ïîñëå çàêðûòèÿ
      
   Cls  =false;                        // Êðèòåðèé äëÿ çàêðûòèÿ
   if((StrToTime(TimeToStr(TimeCurrent()+86400, TIME_DATE)+" "+"00:00")-TimeCurrent())/60==Period())
     Cls=true;
   
//------------------- Îäèí  ðàç çà ïåðèîä --
   if (New_Bar)                        // Îäèí ðàç çà ïåðèîä âûïîëíÿåòñÿ ñëåäóþùåå
     {
      // Ïðåäâàðèò.îáðàáîòêà
      if(TimeCurrent()<StartDateTime){            // Âðåìÿ ñòàðòà íå íàñòóïèëî
        Alert("Âðåìÿ ñòàðòà íå íàñòóïèëî. Ýêñïåðò íå ðàáîòàåò.",": ",Symb,", ",Period());
        return;                                  // Âûõîä èç start()
      }            
      if (TimeCurrent()>=FinishDateTime){         //Âðåìÿ ôèíèøà íàñòóïèëî
        Alert("Âðåìÿ ôèíèøà íàñòóïèëî. Ýêñïåðò íå ðàáîòàåò.",": ",Symb,", ",Period());
        return;                                  // Âûõîä èç start()
      }            
      if(TimeCurrent()==StrToTime(TimeToStr(CurTime(), TIME_DATE)+" "+"00:00")){
        Work_Day=true;
        if((WorkMo==0 && DayOfWeek()==1) ||
          (WorkTu==0 && DayOfWeek()==2) ||
          (WorkWe==0 && DayOfWeek()==3) ||
          (WorkTh==0 && DayOfWeek()==4) ||
          (WorkFr==0 && DayOfWeek()==5)){
          Work_Day=false;
          Alert("Ñåãîäíÿ ýêñïåðò íå ðàáîòàåò.",": ",Symb,", ",Period());
        }
      }            
      if(!Work_Day) return;                      // Âûõîä èç start()
     
      if(Work==false){                            // Êðèòè÷åñêàÿ îøèáêà
         Alert("Êðèòè÷åñêàÿ îøèáêà. Ýêñïåðò íå ðàáîòàåò.",": ",Symb,", ",Period());
         return;                                 // Âûõîä èç start()
      }
   //----------------------- Ó÷¸ò îðäåðîâ
      Symb=Symbol();                               // Íàçâàíèå ôèí.èíñòð.
      Total=0;                                     // Êîëè÷åñòâî îðäåðîâ
      for(int i=1; i<=OrdersTotal(); i++)          // Öèêë ïåðåáîðà îðäåð
        {
         if (OrderSelect(i-1,SELECT_BY_POS)==true) // Åñëè åñòü ñëåäóþùèé
           {                                       // Àíàëèç îðäåðîâ:
            if (OrderSymbol()!=Symb)continue;      // Íå íàø ôèí. èíñòðóì
            if (OrderType()>1)                     // Ïîïàëñÿ îòëîæåííûé
              {
               Alert("Îáíàðóæåí îòëîæåííûé îðäåð. Ýêñïåðò íå ðàáîòàåò.",": ",Symb,", ",Period());
               return;                             // Âûõîä èç start()
              }
            Total++;                               // Ñ÷¸ò÷èê ðûíî÷í. îðä
            if (Total>1)                           // Íå áîëåå îäíîãî îðä
              {
               Alert("Íåñêîëüêî ðûíî÷íûõ îðäåðîâ. Ýêñïåðò íå ðàáîòàåò.",": ",Symb,", ",Period());
               return;                             // Âûõîä èç start()
              }
            Ticket =OrderTicket();                 // Íîìåð âûáðàíí. îðä.
            Tip    =OrderType();                   // Òèï âûáðàííîãî îðä.
            SL     =OrderStopLoss();               // SL âûáðàííîãî îðä.
            TP     =OrderTakeProfit();             // TP âûáðàííîãî îðä.
            Profit =OrderProfit();                 // Profit âûáðàííîãî îðä.
            Lot    =OrderLots();                   // Êîëè÷åñòâî ëîòîâ
           }
        }
      if(Total==0 /*&& StartTime!="00:00"*/ 
         && (TimeCurrent()<StrToTime(TimeToStr(CurTime(), TIME_DATE)+" "+"01:00") 
            || TimeCurrent()>StrToTime(TimeToStr(CurTime(), TIME_DATE)+" "+FinishTime)))
        {
        return;                             // Âûõîä èç start()
        }
      if(Total==0 && !First && TimeCurrent()==StrToTime(TimeToStr(CurTime(), TIME_DATE)+" "+"01:00"))
          {
          First=true;
          Second=false;
          }
      if(TimeCurrent()==StrToTime(TimeToStr(CurTime(), TIME_DATE)+" "+FinishTime))
        {
        Second=false;
        LookInd=true;
        }
     
      if(Total==0) Cls=false; 
      
   //---- Èñõîäíûå äàííûå
      if(Total==0 && !Second)
        {
        SL = iCustom(0, 0, "iK_LinReg_v1","",t0,"",useClose,"",MaxSL,FinishTime,"01:00",PerSil,2, 0);
        Up = iCustom(0, 0, "iK_LinReg_v1","",t0,"",useClose,"",MaxSL,FinishTime,"01:00",PerSil,5, 0);
        Dn = iCustom(0, 0, "iK_LinReg_v1","",t0,"",useClose,"",MaxSL,FinishTime,"01:00",PerSil,6, 0);
        TP = iCustom(0, 0, "iK_LinReg_v1","",t0,"",useClose,"",MaxSL,FinishTime,"01:00",PerSil,7, 0);
        RevSL=SL;
        RevTP=TP;
        RevUp=Up;
        RevDn=Dn;
        LookInd=false;
        }
     
      if(Up==0 && Dn==0) return; 
           
   //---- 
      if(Second && Total==0)
        {
        if(RevUp>0)
          if(Profit>0)
            {
            TP=RevUp;
            SL=RevTP+RevUp-RevSL;
            Up=RevDn;
            Dn=RevUp;
            }
            else
            {
            TP=RevTP;
            SL=2*RevSL-RevUp;
            Up=RevUp;
            Dn=RevDn;
            }
        if(RevDn>0)
          if(Profit>0)
            {
            TP=RevDn;
            SL=RevTP+RevDn-RevSL;
            Up=RevDn;
            Dn=RevUp;
            }
            else
            {
            TP=RevTP;
            SL=2*RevSL-RevDn;
            Up=RevUp;
            Dn=RevDn;
            }
        }
   //---- Êîììóòàòîð
      if(Reverse && Total==0)                                    // îòêðûòûõ îðäåðîâ íåò,
        if(Up>0 || Dn>0)
          {
          if(Second)
            {
            LookInd=false;
            Second=false;
            }
          if(First)
            {
            First=false;
            Second=true;
            }
          }
     
   //---- Óñëîâèÿ îòêðûòèÿ îðäåðà
      if(Total==0)                                    // îòêðûòûõ îðäåðîâ íåò,
        {
        Opn_B=false;
        Opn_S=false;
        if(Up>0)
          Opn_B=true;                               // íàäî îòêðûâàòü îðäåð íà Buy
        if(Dn>0)
          Opn_S=true;                               // íà Sell
        }
     
   //---- Óñëîâèÿ çàêðûòèÿ îðäåðà      
      if((Tip==0                                     // îðäåð îòêðûò íà ïîêóïêó
          && Ask>=TP)    
         ||                                          // èëè
          (Tip==1                                    // îðäåð îòêðûò íà ïðîäàæó
          && Bid<=TP && Bid>0))    
        {                                           
        Cls = true;                                  // íàäî çàêðûâàòü îðäåð
        }
     
   //--------------------------------------------------------------- 7 --
      // Ñòîèìîñòü îðäåðîâ
      RefreshRates();                              // Îáíîâëåíèå äàííûõ
      Min_Lot=MarketInfo(Symb,MODE_MINLOT);        // Ìèíèì. êîëè÷. ëîòîâ 
      Free   =AccountFreeMargin();                 // Ñâîáîäí ñðåäñòâà
      One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// Ñòîèìîñòü 1 ëîòà
      Step   =MarketInfo(Symb,MODE_LOTSTEP);       // Øàã èçìåíåí ðàçìåðà
     
      if (Lots > 0)                                // Åñëè çàäàíû ëîòû,òî 
         Lts =Lots;                                // ñ íèìè è ðàáîòàåì 
      else                                         // % ñâîáîäíûõ ñðåäñòâ
         Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// Äëÿ îòêðûòèÿ
     
      if(Lts < Min_Lot) Lts=Min_Lot;               // Íå ìåíüøå ìèíèìàëüí
     
      if (Lts*One_Lot > Free &&                    // Ëîò äîðîæå ñâîáîäí.
         TimeCurrent()<(Time[0] + 2*60) &&         // íå ïðîøëî åù¸ áîëåå 2-õ ìèíóò
         Total==0)                                 // è îðäåð íå îòêðûò
        {
         Alert(" Íå õâàòàåò äåíåã íà ", Lts," ëîò",": ",Symb,", ",Period());
         return;                                   // Âûõîä èç start()
        }
     }
   
//--------------------------------------------------------------- 6 --
   // Çàêðûòèå îðäåðîâ
   while(Ticket>0)                              // Öèêë çàêðûòèÿ îðä.
     {
      if(Tip==0 && Cls==true)                  // Îòêðûò îðäåð Buy..
        {                                       // è åñòü êðèòåðèé çàêð
        Alert("Çàêðûâàåì Buy: ",Symb,", ",Period());
        RefreshRates();                        // Îáíîâëåíèå äàííûõ
        Ans=OrderClose(Ticket,Lot,Bid,SlipPage,Blue);      // Çàêðûòèå Buy
        if(Ans==true)                         // Ïîëó÷èëîñü :)
          break;                              // Âûõîä èç öèêëà çàêð
        if(Fun_Error(GetLastError())==1)      // Îáðàáîòêà îøèáîê
          {
          Alert("Íåóäà÷íîå çàêðûòèå Buy");
          continue;                           // Ïîâòîðíàÿ ïîïûòêà
          }
        return;                                // Âûõîä èç start()
        }
      if(Tip==1 && Cls==true)                  // Îòêðûò îðäåð Sell..
        {                                       // è åñòü êðèòåðèé çàêð
        Alert("Çàêðûâàåì Sell: ",Symb,", ",Period());
        RefreshRates();                        // Îáíîâëåíèå äàííûõ
        Ans=OrderClose(Ticket,Lot,Ask,SlipPage,Red);      // Çàêðûòèå Sell
        if(Ans==true)                         // Ïîëó÷èëîñü :)
          break;                              // Âûõîä èç öèêëà çàêð
        if(Fun_Error(GetLastError())==1)      // Îáðàáîòêà îøèáîê
          {
          Alert("Íåóäà÷íîå çàêðûòèå Sell");
          continue;                           // Ïîâòîðíàÿ ïîïûòêà
          }
        return;                                // Âûõîä èç start()
        }
      break;                                    // Âûõîä èç while
     }
   
//---- Îòêðûòèå îðäåðîâ
   while(Total==0 && Lts>0)                                 // Öèêë îòêðûòèÿ îðä.
     {
      if(Opn_B==true)              // Îòêðûòûõ îðä. íåò +
        {                                       // êðèòåðèé îòêð. Buy
        RefreshRates();                        // Îáíîâëåíèå äàííûõ
        Alert("Îòêðûâàåì Buy: ",Symb,", ",Period()," OrderSend(",Symb,",",Lts,",",Ask,",",SlipPage,",",SL,",",TP,")");
        Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,SlipPage,SL,TP,0,0,0,Blue);//Îòêðûòèå Buy
        if(Ticket > 0)                        // Ïîëó÷èëîñü :)
          {
          Alert("Óäà÷íîå îòêðûòèå Buy");
          return;                             // Âûõîä èç start()
          }
        if(Fun_Error(GetLastError())==1)      // Îáðàáîòêà îøèáîê
          {
          Alert("Íåóäà÷íîå îòêðûòèå Buy");
          continue;                           // Ïîâòîðíàÿ ïîïûòêà
          }
          else Opn_B=false;
        return;                                // Âûõîä èç start()
        }
      if(Opn_S==true)              // Îòêðûòûõ îðä. íåò +
        {                                       // êðèòåðèé îòêð. Sell
        RefreshRates();                        // Îáíîâëåíèå äàííûõ
        Alert("Îòêðûâàåì Sell: ",Symb,", ",Period()," OrderSend(",Symb,",",Lts,",",Bid,",",SlipPage,",",SL,",",TP,")");
        Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,SlipPage,SL,TP,0,0,0,Red);//Îòêðûòèå Sel
        if(Ticket > 0)                        // Ïîëó÷èëîñü :)
          {
          Alert("Óäà÷íîå îòêðûòèå}Sell");
          return;                             // Âûõîä èç start()
          }
        if(Fun_Error(GetLastError())==1)      // Îáðàáîòêà îøèáîê
          {
          Alert("Íåóäà÷íîå îòêðûòèå}Sell");
          continue;                           // Ïîâòîðíàÿ ïîïûòêà
          }
          else Opn_S=false;
        return;                                // Âûõîä èç start()
        }
      break;                                    // Âûõîä èç while
     }   
//----
   return;                                      // Âûõîä èç start()
  }
//-------------------------------------------------------------- 10 --
int Fun_Error(int Error)                        // Ô-èÿ îáðàáîò îøèáîê
  {
   switch(Error)
     {                                          // Ïðåîäîëèìûå îøèáêè            
      case   4: Alert("Òîðãîâûé ñåðâåð çàíÿò. Ïðîáóåì åù¸ ðàç..",": ",Symb,", ",Period());
         Sleep(3000);                           // Ïðîñòîå ðåøåíèå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 128: Alert("Èñòåê ñðîê îæèäàíèÿ..",": ",Symb,", ",Period());
         return(1);                             // Âûõîä èç ôóíêöèè
      case 129: Alert("Íåïðàâèëüíàÿ öåíà..",": ",Symb,", ",Period());
         return(1);                             // Âûõîä èç ôóíêöèè
      case 130:Alert("Ñëèøêîì áëèçêî ñòîïû..",": ",Symb,", ",Period());
         break;                             // Âûõîä èç ôóíêöèè
      case 135:Alert("Öåíà èçìåíèëàñü. Ïðîáóåì åù¸ ðàç..",": ",Symb,", ",Period());
         RefreshRates();                        // Îáíîâèì äàííûå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 136:Alert("Íåò öåí. Æä¸ì íîâûé òèê..",": ",Symb,", ",Period());
         while(RefreshRates()==false)           // Äî íîâîãî òèêà
            Sleep(1);                           // Çàäåðæêà â öèêëå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 137:Alert("Áðîêåð çàíÿò. Ïðîáóåì åù¸ ðàç..",": ",Symb,", ",Period());
         Sleep(3000);                           // Ïðîñòîå ðåøåíèå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 138:Alert("Çàïðîøåííàÿ öåíà óñòàðåëà..",": ",Symb,", ",Period());
         return(1);                             // Âûõîä èç ôóíêöèè
      case 145:Alert("Îðäåð ñëèøêîì áëèçîê ê ðûíêó . Ïðîáóåì ÷åðåç 15ñåê.",": ",Symb,", ",Period());
         Cls = false;
         Sleep(15000);                        // Ïðîñòîå ðåøåíèå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 146:Alert("Ïîäñèñòåìà òîðãîâëè çàíÿòà. Ïðîáóåì åù¸..",": ",Symb,", ",Period());
         Sleep(500);                            // Ïðîñòîå ðåøåíèå
         return(1);                             // Âûõîä èç ôóíêöèè
         // Êðèòè÷åñêèå îøèáêè
      case  2: Alert("Îáùàÿ îøèáêà.",": ",Symb,", ",Period());
         return(0);                             // Âûõîä èç ôóíêöèè
      case  5: Alert("Ñòàðàÿ âåðñèÿ òåðìèíàëà.",": ",Symb,", ",Period());
         Work=false;                            // Áîëüøå íå ðàáîòàòü
         return(0);                             // Âûõîä èç ôóíêöèè
      case 64: Alert("Ñ÷åò çàáëîêèðîâàí.",": ",Symb,", ",Period());
         Work=false;                            // Áîëüøå íå ðàáîòàòü
         return(0);                             // Âûõîä èç ôóíêöèè
      case 133:Alert("Òîðãîâëÿ çàïðåùåíà.",": ",Symb,", ",Period());
         return(0);                             // Âûõîä èç ôóíêöèè
      case 134:Alert("Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè.",": ",Symb,", ",Period());
         return(0);                             // Âûõîä èç ôóíêöèè
      default: Alert("Âîçíèêëà îøèáêà ",Error,": ",Symb,", ",Period()); // Äðóãèå âàðèàíòû   
         return(0);                             // Âûõîä èç ôóíêöèè
     }
  }
//-------------------------------------------------------------- 11 --
int New_Stop(int Parametr)                      // Ïðîâåðêà ñòîï-ïðèê.
  {
   int Min_Dist=MarketInfo(Symbol(),MODE_STOPLEVEL)+MarketInfo(Symbol(), MODE_SPREAD)+SlipPage;// Ìèíèì. äèñòàíöèÿ
   if (Parametr < Min_Dist)                     // Åñëè ìåíüøå äîïóñò.
     {
      Parametr=Min_Dist;                        // Óñòàíîâèì äîïóñò.
     }
   return(Parametr);                            // Âîçâðàò çíà÷åíèÿ
  }
//+------------------------------------------------------------------+
void Fun_New_Bar()                              // Ô-èÿ îáíàðóæåíèÿ íîâîãî áàðà
  {                                             
   New_Bar=false;                               // Íîâîãî áàðà íåò
   if(New_Time!=Time[0])                        // Ñðàâíèâàåì âðåìÿ
     {
      New_Time=Time[0];                         // Òåïåðü âðåìÿ òàêîå
      New_Bar=true;                             // Ïîéìàëñÿ íîâûé áàð  
     }
  }
//+------------------------------------------------------------------+
void Fun_New_Day()                              // Ô-èÿ îáíàðóæåíèÿ íîâîãî äíÿ
  {                                             
   New_Day=false;                               // Íîâîãî äíÿ íåò
   if(New_TimeOfDay!=iTime(0,PERIOD_D1,0))      // Ñðàâíèâàåì âðåìÿ
     {
      New_TimeOfDay=iTime(0,PERIOD_D1,0);      // Òåïåðü âðåìÿ òàêîå
      New_Day=true;                             // Ïîéìàëñÿ íîâûé äåíü  
     }
  }
//-------------------------------------------------------------- 12 --
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   New_Time=Time[0];                               // Âðåìÿ òåêóùåãî áàðà
   New_TimeOfDay=Time[0];                               // Âðåìÿ òåêóùåãî áàðà
/*  
   switch(FinishT)
     {                                             
     case 16: FinishTime = "16:00"; break;
     case 17: FinishTime = "17:00"; break;
     case 18: FinishTime = "18:00"; break;
     case 19: FinishTime = "19:00"; break;
     case 20: FinishTime = "20:00"; break;
     case 21: FinishTime = "21:00"; break;
     case 22: FinishTime = "22:00"; break;
     case 23: FinishTime = "23:00"; break;
     default: FinishTime = "16:00"; break;
     }
   if(useCl==1) useClose = true; else useClose = false; 
   if(Rev==1) Reverse = true; else Reverse = false; 
*/
   if((TimeCurrent()>=StrToTime(TimeToStr(CurTime(), TIME_DATE)+" "+"00:00")) &&
     (TimeCurrent()<=StrToTime(TimeToStr(CurTime(), TIME_DATE)+" "+"01:00"))){
     Work_Day=true;
     if((WorkMo==0 && DayOfWeek()==1) ||
       (WorkTu==0 && DayOfWeek()==2) ||
       (WorkWe==0 && DayOfWeek()==3) ||
       (WorkTh==0 && DayOfWeek()==4) ||
       (WorkFr==0 && DayOfWeek()==5))
       Work_Day=false;
   }
  }                                                      // íåò îòêðûòûõ îðäåðîâ

  
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
  }


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