← К каталогу
Исходный код · ID 3477

autotrademanager_close.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Советник для платформы MetaTrader 4, предназначенный для управления автоторговлей в зависимости от заданных временных окон по дням недели. Он периодически проверяет текущее время терминала и определяет, находится ли текущий момент в разрешённом интервале торговли для каждого дня недели. При выходе за пределы разрешённого времени советник может закрывать все открытые ордера и отключать кнопку автоторговли в терминале.

Работа основана на таймере с интервалом в одну секунду, который вызывает проверку времени через встроенный менеджер времени. Для управления состоянием автоторговли используется вызов Windows API через библиотеку user32.dll, что позволяет программно включать и выключать кнопку «Автотрейдинг» в интерфейсе MetaTrader 4. Также реализована обработка событий графика для корректной работы таймера.

Настройки программы

НастройкаОписание
Close open orders use (close_open_orders) Закрытие открытых ордеров — Логический переключатель, определяющий, нужно ли закрывать все открытые ордера при выходе за пределы разрешённого временного окна.
Monday (Monday_time_on) Время торговли в понедельник — Текстовый параметр, задающий разрешённый интервал торговли в понедельник в формате ЧЧ:ММ-ЧЧ:ММ.
Tuesday (Tuesday_time_on) Время торговли во вторник — Текстовый параметр, задающий разрешённый интервал торговли во вторник в формате ЧЧ:ММ-ЧЧ:ММ.
Wednesday (Wednesday_time_on) Время торговли в среду — Текстовый параметр, задающий разрешённый интервал торговли в среду в формате ЧЧ:ММ-ЧЧ:ММ.
Thursday (Thursday_time_on) Время торговли в четверг — Текстовый параметр, задающий разрешённый интервал торговли в четверг в формате ЧЧ:ММ-ЧЧ:ММ.
Friday (Friday_time_on) Время торговли в пятницу — Текстовый параметр, задающий разрешённый интервал торговли в пятницу в формате ЧЧ:ММ-ЧЧ:ММ.
Saturday (Saturday_time_on) Время торговли в субботу — Текстовый параметр, задающий разрешённый интервал торговли в субботу в формате ЧЧ:ММ-ЧЧ:ММ.
Sunday (Sunday_time_on) Время торговли в воскресенье — Текстовый параметр, задающий разрешённый интервал торговли в воскресенье в формате ЧЧ:ММ-ЧЧ:ММ.
Получить полный код

Поиск по коду файла

#property version   "1.00"

#property strict
#include <sovetnikovGUI/Orders.mqh>
#include <sovetnikovGUI/Time.mqh>

B close_open_orders=false;//Close open orders use
BLOCK(1,"Terminal (Broker) time:");//.
S Monday_time_on="00:00-24:00";//Monday
S Tuesday_time_on="00:00-24:00";//Tuesday
S Wednesday_time_on="00:00-24:00";//Wednesday
S Thursday_time_on="00:00-24:00";//Thursday
S Friday_time_on="00:00-24:00";//Friday
S Saturday_time_on="00:00-24:00";//Saturday
S Sunday_time_on="00:00-24:00";//Sunday

class CMyOrders: public COrders
  {
public:

};
class CMain: public CMainDefault
  {
protected:
   CTimer            m_timer;
   CTime             m_time;
   CMyOrders         m_main;
public:
   virtual int OnInit()
     {
      // код доступен только после оплаты
   }

   virtual void OnDeinit(const int reason)
     {
      m_timer.OnDeinit();
      m_main.OnDeinit();
     }

   virtual void OnTick()
     {
      // код доступен только после оплаты
   }

   virtual void OnTimer()
     {

      if(!MQLInfoInteger(MQL_DLLS_ALLOWED)) return;

      bool bWork=m_time.checkTimeManager(true,Monday_time_on,Tuesday_time_on,Wednesday_time_on,Thursday_time_on,Friday_time_on,Saturday_time_on,Sunday_time_on);

      if(!bWork && close_open_orders){
         m_main.OrderCloseAll(ALL,clrNONE);

         if(m_main.m_all!=0) bWork=true; //пока все не закроем, не разрешаем отключать!
      }

      ExpertEnabled(bWork);

      m_timer.OnTimer();
     }
   virtual void OnChartEvent(const int id,// идентификатор события   
                 

Показано первые 50% кода (символов: 2549)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
254,90₽ ≈ $3.12