AutoTrading Scheduler
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «autotrading scheduler.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
AutoTrading Scheduler — торговый советник для MetaTrader 5, который создаёт недельный график включения и отключения автоматической торговли. Вне заданных временных интервалов советник автоматически отключает AutoTrading, при этом поддерживается возможность закрытия всех открытых позиций перед отключением.
Советник предоставляет настраиваемую панель с графиком торговых периодов для каждого дня недели. Временные интервалы задаются в 24-часовом формате, пустая строка означает отключение торговли в этот период. Режим работы графика (разрешение или запрет AutoTrading) настраивается пользователем.
Доступны уведомления через встроенные оповещения, электронную почту и push-уведомления. Советник поддерживает фильтрацию по магическим числам, загрузку расписания из внешнего файла, асинхронное закрытие сделок, а также автоматическое определение тёмной темы интерфейса.
Настройки программы
| Настройка | Описание |
|---|---|
| EnableNativeAlerts | Включает встроенные оповещения MetaTrader. |
| EnableEmailAlerts | Включает отправку уведомлений по электронной почте. |
| EnablePushAlerts | Включает push-уведомления на мобильные устройства. |
| DefaultTurnedOn | Начальное состояние планировщика: включён или выключен. |
| DefaultTime | Тип времени по умолчанию для расписания (локальное или серверное). |
| DefaultMonday | Включённые торговые периоды для понедельника (24-часовой формат, пустая строка — торговля отключена). |
| DefaultTuesday | Включённые торговые периоды для вторника (24-часовой формат, пустая строка — торговля отключена). |
| DefaultWednesday | Включённые торговые периоды для среды (24-часовой формат, пустая строка — торговля отключена). |
| DefaultThursday | Включённые торговые периоды для четверга (24-часовой формат, пустая строка — торговля отключена). |
| DefaultFriday | Включённые торговые периоды для пятницы (24-часовой формат, пустая строка — торговля отключена). |
| DefaultSaturday | Включённые торговые периоды для субботы (24-часовой формат, пустая строка — торговля отключена). |
| DefaultSunday | Включённые торговые периоды для воскресенья (24-часовой формат, пустая строка — торговля отключена). |
| DefaultClosePos | Если включено, все открытые сделки закрываются перед отключением AutoTrading. |
| DefaultEnforce | Если включено, расписание всегда принудительно применяется. |
| DefaultAllowDeny | Определяет, разрешает или запрещает расписание автоматическую торговлю. |
| Slippage | Допустимое проскальзывание в пунктах. |
| ScheduleFile | Путь к файлу расписания для загрузки (необязательный параметр). |
| WaitForNoPositions | Если включено, AutoTrading отключается только при отсутствии открытых позиций. |
| WaitForNoOrders | Если включено, AutoTrading отключается только при отсутствии отложенных ордеров. |
| MagicNumbersFilter | Строка фильтра магических чисел для выборочного контроля сделок. |
| IgnoreMagicNumbers | Если включено, сделки с указанными магическими числами игнорируются фильтром. |
| AsyncMode | Если включено, сделки закрываются в асинхронном режиме. |
| WhatToClose | Определяет, что закрывать при попытке закрытия сделок: все позиции, ордера или определённый тип. |
| DarkMode | Включает тёмный режим интерфейса панели для уменьшения яркости. |
| AutoDetectDarkMode | При включении тёмная или светлая тема панели определяется автоматически на основе темы терминала. |
Поиск по коду файла
#property version "1.05"
string Version = "1.05";
#property strict
#property description "Creates a weekly schedule when AutoTrading is enabled."
#property description "Disables AutoTrading during all other times."
#property description "Time is in 24h timeframe. Empty line means disabled trading."
#property description "Can also close all trades before disabling AutoTrading.\r\n"
#property description "WARNING: There is no guarantee that the expert advisor will work as intended. Use at your own risk."
#property icon "EF-Icon-64x64px.ico"
#include "AutoTrading Scheduler.mqh";
input group "Notifications"
input bool EnableNativeAlerts = false;
input bool EnableEmailAlerts = false;
input bool EnablePushAlerts = false;
input group "Defaults"
input bool DefaultTurnedOn = false; // Default state of the scheduler: ON or OFF
input ENUM_TIME_TYPE DefaultTime = Local; // Default time type
input string DefaultMonday = ""; // Default enabled Monday periods
input string DefaultTuesday = ""; // Default enabled Tuesday periods
input string DefaultWednesday = ""; // Default enabled Wednesday periods
input string DefaultThursday = ""; // Default enabled Thursday periods
input string DefaultFriday = ""; // Default enabled Friday periods
input string DefaultSaturday = ""; // Default enabled Saturday periods
input string DefaultSunday = ""; // Default enabled Sunday periods
input bool DefaultClosePos = false; // Close all trades before turning AutoTrading OFF?
input bool DefaultEnforce = true; // Always enforce schedule?
input ENUM_ALLOWDENY DefaultAllowDeny = ALLOWDENY_ALLOW; // Schedule for allowing or denying AutoTrading?
input group "Miscellaneous"
input int Slippage = 2; // Slippage
input string ScheduleFile = ""; // ScheduleFile (optional)
input bool WaitForNoPositions = false; // Switch A/T off only when there are no open positions?
input bool WaitForNoOrders = false; // Switch A/T off only when there are no pending orders?
input string MagicNumbersFilter = ""; // Magic numbers filter
input bool IgnoreMagicNumbers = false; // Ignore trades with above-listed magic numbers
input bool AsyncMode = false; // AsyncMode: If true, trades are closed in async mode
input ENUM_WHAT_TO_CLOSE WhatToClose = WTC_ALL; // If attempting to close trades, what to close?
input bool DarkMode = false; // DarkMode: Enable dark mode for a less bright panel.
input bool AutoDetectDarkMode = true; // AutoDetectDarkMode: Dark/light mode will be autodetected.
CScheduler Panel;
int DeinitializationReason = -1;
long MagicNumbers_array[];
bool DetectedColorMode;
int OnInit()
{
// код доступен только после оплаты
}
if (AutoDetectDarkMode) DetectedColorMode = DetectDarkMode();
else DetectedColorMode = DarkMode;
if (DetectedColorMode)
{
CONTROLS_EDIT_COLOR_ENABLE = DARKMODE_EDIT_BG_COLOR;
CONTROLS_EDIT_COLOR_DISABLE = 0x999999;
CONTROLS_BUTTON_COLOR_ENABLE = DARKMODE_BUTTON_BG_COLOR;
CONTROLS_BUTTON_COLOR_DISABLE = 0x919999;
}
else
{
CONTROLS_EDIT_COLOR_ENABLE = C'255,255,255';
CONTROLS_EDIT_COLOR_DISABLE = C'221,221,211';
CONTROLS_BUTTON_COLOR_ENABLE = C'200,200,200';
CONTROLS_BUTTON_COLOR_DISABLE = C'224,224,224';
}
Panel.InitVariables();
if (DeinitializationReason != REASON_CHARTCHANGE)
{
if (!Panel.LoadSettingsFromDisk())
{
sets.TurnedOn = DefaultTurnedOn;
sets.TimeType = DefaultTime;
sets.Monday = DefaultMonday;
sets.Tuesday = DefaultTuesday;
sets.Wednesday = DefaultWednesday;
sets.Thursday = DefaultThursday;
sets.Friday = DefaultFriday;
sets.Saturday = DefaultSaturday;
sets.Sunday = DefaultSunday;
sets.Enforce = DefaultEnforce;
sets.ClosePos = DefaultClosePos;
sets.LastToggleTime = 0;
sets.AllowDeny = DefaultAllowDeny;
sets.LongTermSchedule = "";
}
if (!Panel.Create(0, "AutoTrading Scheduler (ver. " + Version + ")", 0, 20, 20)) return(-1);
Panel.Run();
Panel.IniFileLoad();
if (ScheduleFile != "") Panel.LoadScheduleFile();
Panel.HideShowMaximize();
Panel.RefreshPanelControls();
Panel.RefreshValues();
}
ProcessMagicNumbers();
if (DetectedColorMode)
{
int total = ObjectsTotal(ChartID());
for (int i = 0; i < total; i++)
{
string obj_name = ObjectName(ChartID(), i);
if (StringSubstr(obj_name, 0, StringLen(Panel.Name())) != Panel.Name()) continue; // Skip non-panel objects.
if (obj_name == Panel.Name() + "Back")
{
ObjectSetInteger(ChartID(), obj_name, OBJPROP_BGCOLOR, DARKMODE_BG_DARK_COLOR);
}
if (obj_name == Panel.Name() + "Caption")
{
ObjectSetInteger(ChartID(), obj_name, OBJPROP_BGCOLOR, DARKMODE_BG_DARK_COLOR);
ObjectSetInteger(ChartID(), obj_name, OBJPROP_COLOR, DARKMODE_CONTROL_BRODER_COLOR);
ObjectSetInteger(ChartID(), obj_name, OBJPROP_BORDER_COLOR, DARKMODE_BG_DARK_COLOR);
}
else if (obj_name == Panel.Name() + "ClientBack")
{
ObjectSetInteger(ChartID(), obj_name, OBJPROP_COLOR, DARKMODE_MAIN_AREA_BORDER_COLOR);
ObjectSetInteger(ChartID(), obj_name, OBJPROP_BGCOLOR, DARKMODE_MAIN_AREA_BG_COLOR);
}
else if (StringSubstr(obj_name, 0, StringLen(Panel.Name() + "m_Edt")) == Panel.Name() + "m_Edt")
{
ObjectSetInteger(ChartID(), obj_name, OBJPROP_BGCOLOR, DARKMODE_EDIT_BG_COLOR);
ObjectSetIntegeПоказано первые 50% кода (символов: 8622)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.