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

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 и перейдите к оплате.

Стоимость полного кода
862,20₽ ≈ $10.54