Нужна помощь. Как заставить советника закрывать все ордера в конце каждого дня.

 
Нужна помощь. Как заставить советника закрывать все ордера в конце каждого дня.
 
mvaturf:
Нужна помощь. Как заставить советника закрывать все ордера в конце каждого дня.

нужно встроить одну из функций работы советника по времени,

и добавить условие, если время больше 23 часов, использовать одну из функций Close_All

все через поиск можно найти

 
lynxntech #:

нужно встроить одну из функций работы советника по времени,

и добавить условие, если время больше 23 часов, использовать одну из функций Close_All

все через поиск можно найти

А у Вас кодов нет в МОL 5, чтобы вставить , я сам писать не умею.
 

вот чей-то вариант сохранял

//+------------------------------------------------------------------+
//| Time control                                                                 |
//+------------------------------------------------------------------+
input group             "Time control"
input bool                    InpTimeControl       = true;           // Use time control
input uchar                   InpStartHour         = 10;             // Start Hour
input uchar                   InpStartMinute       = 01;             // Start Minute
input uchar                   InpEndHour           = 18;             // End Hour
input uchar                   InpEndMinute         = 02;             // End Minute
//--- главная функция*************************************************
bool TimeControlHourMinute(void)
  {
   if(!InpTimeControl)
      return(true);
   MqlDateTime STimeCurrent;
   datetime time_current=TimeCurrent();
   if(time_current==D'1970.01.01 00:00')
      return(false);
   TimeToStruct(time_current,STimeCurrent);
   if((InpStartHour*60*60+InpStartMinute*60)<(InpEndHour*60*60+InpEndMinute*60)) // intraday time interval
     {
      /*
      Example:
      input uchar    InpStartHour      = 5;        // Start hour
      input uchar    InpEndHour        = 10;       // End hour
      0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15
      _  _  _  _  _  +  +  +  +  +  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  +  +  +  +  +  _  _  _  _  _  _
      */
      if((STimeCurrent.hour*60*60+STimeCurrent.min*60>=InpStartHour*60*60+InpStartMinute*60) &&
         (STimeCurrent.hour*60*60+STimeCurrent.min*60<InpEndHour*60*60+InpEndMinute*60))
         return(true);
     }
   else
      if((InpStartHour*60*60+InpStartMinute*60)>(InpEndHour*60*60+InpEndMinute*60)) // time interval with the transition in a day
        {
         /*
         Example:
         input uchar    InpStartHour      = 10;       // Start hour
         input uchar    InpEndHour        = 5;        // End hour
         0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15
         _  _  _  _  _  _  _  _  _  _  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  _  _  _  _  _  +  +  +  +  +  +
         */
         if(STimeCurrent.hour*60*60+STimeCurrent.min*60>=InpStartHour*60*60+InpStartMinute*60 ||
            STimeCurrent.hour*60*60+STimeCurrent.min*60<InpEndHour*60*60+InpEndMinute*60)
            return(true);
        }
      else
         return(false);
//---
   return(false);
  }
 

тут варианты закрытия

https://www.mql5.com/ru/forum/146423/page2#comment_47863135


в обоих случаях в шапке кода должно быть подключения класса

#include <Trade\Trade.mqh>
CTrade m_trade;
Как закрыть все ордера в конце дня
Как закрыть все ордера в конце дня
  • 2013.08.20
  • www.mql5.com
Здравствуйте! Поделитесь пожалуйста кодом) Нужно чтобы в конце каждого торгового дня закрывались все открытые ордера. Спасибо...
 
lynxntech #:

вот чей-то вариант сохранял

Спасибо