autotrademanager_close.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.