Планировщик Авто-торговли — это экспертный советник для МетаТрейдера, который позволяет вам контролировать статус кнопки «Авто-торговля» в вашей торговой платформе на основе недельного или долгосрочного расписания. Кроме включения и выключения авто-торговли этот ЭС может пытаться закрывать все сделки по достижении периода отключения авто-торговли. Данный экспертный советник доступен как для MT4, так и для MT5.
Планировщику требуется импорт DLL, чтобы работать правильно. Он импортирует одну функцию из стандартной библиотеки DLL для Windows (user32.dll). Не забывайте разрешать импорт DLL при добавлении советника на график.
Интерфейс
Элементы управления панелью довольны простые в обращении. Кнопка переключения позволяет вам включать и выключать планировщик. Двойной переключатель справа позволяет переключаться между местным и серверным временем. Поле статуса проинформирует вас, если отключен импорт DLL, если нет связи, или если выключена авто-торговля. Семь полей для ввода, по одному на каждый день недели, служат для задания временных промежутков, когда авто-торговля должна быть включена или выключена. Кнопка «Set to all empty» задаст значение, установленное для понедельника, во все пустые дни недели — это будет полезно, чтобы быстро установить одинаковое расписание на каждый день. Первый чекбокс под днями недели позволяет вам сделать так, чтобы советник попытался закрыть все сделки перед отключением авто-торговли. И наконец, чекбокс в нижней части панели позволяет указать советнику, чтобы он работал или в «жестком» режиме (чекбокс отмечен; советник будет всегда пытаться переключить авто-торговлю в соответствии с расписанием) или в «мягком» (чекбокс не отмечен; советник будет переключать авто-торговлю только, когда начинается или заканчивается очередной период).
Использование
Когда планировщик выключен, он ничего не делает. Вам нужно включить его, чтобы он заработал.
Возможность изменить время с местного на серверное может оказаться полезной, если вы хотите, чтобы планировщик работал по времени торгового сервера вашего брокера, например, в периоды смены летнего и зимнего времени.
Статус может быть OK, No autotrading (нет авто-торговли), No connection (нет подключения) или DLLs disabled (DLL отключены). Первый и второй статусы ни на что не влияют — они просто информируют вас. Нет подключения означает, что ЭС не сможет закрыть сделки перед отключением авто-торговли, но сможет саму авто-торговлю отключить без проблем. DLL отключены представляет собой настоящую проблему, потому что включение/выключение авто-торговли будет невозможным.
Кнопка прямо под полем статуса нужна для переключения расписания между режимом разрешения торговли (Allowed) и режимом запрета авто-торговли (Denied).
Главная часть работы с планировщиком — это задание правильного недельного расписания. Авто-торговля будет включена только в заданные вами периоды.
Входные поля для времени работают с периодами времени, заданными в 24-часовом формате и с разделением времени старта и времени финиша дефисом. Например, период 9-17
будет интерпретирован как "с 9:00 до 17:00".
Можно задать несколько временных промежутков через запятую. Например, если задать 13:30-16:30, 19:30-20:05
, планировщик включит авто-торговлю для двух периодов: с 13:30 по 16:30 и с 19:30 по 20:05.
По умолчанию планировщик будет всегда пытаться отключить авто-торговлю вне разрешенных периодов и включить ее внутри таких оных. Даже если вы самостоятельно переключите авто-торговлю, планировщик переключит по-своему. Чтобы избежать этого, вы можете убрать отметку с чекбокса внизу панели — это сделает так, что советник будет переключать авто-торговлю только, когда разрешенный период начинается или заканчивается, или при включении планировщика внутри периода, причем отключение или включение может производиться только один раз за период.
Главная цель Планировщик Авто-торговли — управление статусом кнопки автоматической торговли в платформе МетаТрейдер. Однако, он также может быть использован для того, чтобы закрыть сделки перед отключением авто-торговли. Это достигается отметкой чекбокса под днями недели. Экспертный советник попытается закрыть позиции и удалить отложенные ордеры, но нет гарантии, что у него это получится. Он не станет пытаться закрыть сделки повторно, потому что его основная задача - отключить авто-торговлю, после чего управление сделками становится невозможным.
Файл с расписанием
Недельное расписание
К сожалению, МетаТрейдер не позволяет вводить строки длиннее 63 символов в поля формы. Если вы хотите использовать сложное расписание, которое не вписывается в лимит (например, для включения и отключения авто-торговли каждый час), вам следует воспользоваться файлом с расписанием. Вы можете сделать это, создав простой текстовый файл в подпапке \MQL4\Files\
(или \MQL5\Files\
) папки данных своего МетаТрейдера и установив название файла во входной параметр ScheduleFile.
Форма файла должен подчиняться одному простому правилу. За строкой с названием дня недели должна следовать строка с расписанием на этот день. Например, если вы хотите, чтобы авто-торговля работала только в первые 10 минут каждого часа по вторникам и средам, то содержимое текстового файла будет примерно таким:
Tue 0-0:10,1-1:10,2-2:10,3-3:10,4-4:10,5-5:10,6-6:10,7-7:10,8-8:10,9-9:10,10-10:10,11-11:10,12-12:10,13-13:10,14-14:10,15-15:10,16-16:10,17-17:10,18-18:10,19-19:10,20-20:10,21-21:10,22-22:10,23-23:10 Wednesday 0-0:10,1-1:10,2-2:10,3-3:10,4-4:10,5-5:10,6-6:10,7-7:10,8-8:10,9-9:10,10-10:10,11-11:10,12-12:10,13-13:10,14-14:10,15-15:10,16-16:10,17-17:10,18-18:10,19-19:10,20-20:10,21-21:10,22-22:10,23-23:10
Название дней недели можно вводить полностью или в сокращенном виде, но обязательно на английском.
Не обязательно задавать расписание для всех дней в файле. Используйте его только для слишком длинных расписаний.
Как только файл с расписанием будет успешно загружен, соответствующие дни станут неактивными и будут содержать строку <<
FILE
>>
:
Долгосрочное расписание
Через файл также можно задать долгосрочное расписание. Например, можно установить расписание на текущий месяц или на целый год, или даже на несколько лет вперед.
Такое расписание должно задаваться на каждый отдельный день, используя формат ГГГГ-ММ-ДД для дат и обычный формат периодов для расписания внутри дня. Вот пример расписания, которое определяет периоды разрешенной авто-торговли для 4 дней в июле 2024:
2024-07-05 13:00-18:30, 20:30-21:45 2024-07-12 12:50-18:40, 20:25-21:50 2024-07-19 14:00-15:30, 19:50-22:00 2024-07-26 00:00-23:59
Такое долгосрочное расписание при загрузке заменит собой любое недельное расписание, а все дни недели на панели будут отображать заполнитель <<
FILE
>>
.
Важно понимать, что долгосрочное расписание не является цикличным и устаревает, как только проходит заданная дата.
Входные параметры
Уведомления
- EnableNativeAlerts (по умолчанию = false) — если true, при переключении авто-торговли сработает встроенный алерт MetaTrader во всплывающем окне.
- EnableEmailAlerts (по умолчанию = false) — если true, при переключении авто-торговли будет отправлено электронное письмо. Электронная почта должна быть правильно настроена в МетаТрейдере через меню Сервис->Настройки->Почта.
- EnablePushAlerts (по умолчанию = false) — если true, при переключении авто-торговли будет отправлено пуш-уведомление на ваше мобильное устройство. Уведомления должны быть правильно настроены в МетаТрейдере через меню Сервис->Настройки->Уведомления.
По умолчанию
- DefaultTurnedOn (по умолчанию = false) — состояние по умолчанию для кнопки «вкл/выкл» планировщика.
- DefaultTime (по умолчанию = Local) — тип времени по умолчанию — или локальное, или серверное.
- DefaultMonday (по умолчанию = "") — период включенной авто-торговли для понедельника.
- DefaultTuesday (по умолчанию = "") — период включенной авто-торговли для вторника.
- DefaultWednesday (по умолчанию = "") — период включенной авто-торговли для среды.
- DefaultThursday (по умолчанию = "") — период включенной авто-торговли для четверга.
- DefaultFriday (по умолчанию = "") — период включенной авто-торговли для пятницы.
- DefaultSaturday (по умолчанию = "") — период включенной авто-торговли для субботы.
- DefaultSunday (по умолчанию = "") — период включенной авто-торговли для воскресенья.
- DefaultClosePos (по умолчанию = false) — состояние по умолчанию для чекбокса «Закрыть все сделки».
- DefaultEnforce (по умолчанию = true) — состояние по умолчанию для чекбокса «Всегда обеспечивать соблюдение расписания».
- DefaultAllowDeny (default = true) — состояние по умолчанию для кнопки «Разрешить/Запретить».
Разное
- Slippage (по умолчанию = 2) — значения проскальзывания, заданное в брокерских пунктах, которое будет использовано при закрытии позиций.
- ScheduleFile (по умолчанию = "") — имя текстового файла, содержащего расписание. Файл должен быть расположен или в подпапке \MQL4\Files\ (для MT4) или в \MQL5\Files\ (для MT5).
- WaitForNoPositions (по умолчанию = false) — если true, Планировщик подождет закрытия всех позиций перед отключением авто-торговли.
- WaitForNoOrders (по умолчанию = false) — если true, Планировщик подождет удаления всех отложенных ордеров перед отключением авто-торговли.
Скачать (ver. 1.03, 2024-06-17)
Планировщик Авто-торговли для МетаТрейдера 4 Планировщик Авто-торговли для МетаТрейдера 5
Установка: разархивируйте и скопируйте всю папку AutoTrading Scheduler в MQL4/Experts/ или MQL5/Experts/ (если вы используете МетаТрейдер 5) в папке данных вашего терминала.
Обсуждение
У вас есть вопросы или предложения по данному экспертному советнику? Вы можете обсудить Планировщик Авто-торговли с другими трейдерами на форуме.
Список изменений
Версия 1.03 — 2024-06-17
- Добавлена возможность загружать текстовый файл с долгосрочным расписанием.
- Добавлены некоторые полезные всплывающие подсказки на панели.
- Добавлен переключатель между расписанием, которое разрешает авто-торговлю (Allow) в заданное время, и расписанием, которое запрещает авто-торговлю (Deny) в заданное время.
- Изменена работа планировщика в режиме, когда снят чекбокс «Всегда обеспечивать соблюдение расписания». Теперь планировщик переключит авто-торговлю также и в случае, если его включили посреди какого-либо периода.
- Исправлено положение панели вне границ экрана после изменения размера графика.
- Исправлен вылет панели, если загрузить советник без разрешения функций DLL.
- Исправлен баг, который приводил к тому, что расписание не сбрасывалось при изменении или удалении значения входного параметра ScheduleFile.
Версия 1.02 — 2023-12-07
- Добавлена возможность загружать расписание из текстового файла (ScheduleFile).
- Добавлена возможность заставить Планировщик ждать, пока больше не будет открытых позиций (WaitForNoPositions) или отложенных ордеров (WaitForNoOrders), перед тем, как отключать авто-торговлю.
Версия 1.01 — 2023-06-06
- Добавлена возможность включить уведомления о переключениях авто-торговли.
- Добавлен режим «мягкой» работы планировщика, в котором авто-торговля переключается только, когда новый период начинается или заканчивается.
- Добавлены входные параметры для значений по умолчанию для всех полей панели. Это упростит настройку и копирование значений из одной платформы в другую.
- Оптимизирована обработка смены таймфрейма/символа графика.
- Исправлен баг, который не давал развернуть панель после сворачивания.
- Исправлен баг, который мог привести к множественному срабатыванию включения и отключения авто-торговли, когда планировщик пытался закрыть сделки.
- Исправлен баг с удалением остаточных графических объектов после критической ошибки у предыдущего экземпляра советника.
- Убран входной параметр PanelOnTopOfChart. Вместо него лучше пользоваться настройками графика.