49. NYMB-MGridAssistant-MT5-Bot

49. NYMB-MGridAssistant-MT5-Bot

Бот-ассистент сопровождает ручную сделку, автоматически усредняя ее двумя Мартингейл-сетками

Что нового?

1.05: [*] Релизная версия без ограничений.
1.04: [+] 'SET_TRD_SLP' Допустимое проскальзывание торговых операций, пункт.
1.03: [*] Исправлена ошибка номера шага в комментариях позиций и восстановления размера окна.
1.02: [*] Исправлена ошибка мультипликатора лота. 
1.01: [*] Исправлена ошибка определения SL и TP ручной позиции. Сейчас TP и SL определяются по сделки выхода, а ранее по сделки входа. Если вход был без SL, который изменили позже, то бот не мог его определить.
1.00: First version

Тех. задание

Бот для MetaTrader 5 (XAUUSD). Задача: Автоматизация стратегии с использованием Мартингейла и хеджирования.

Chart Requirements

Основные особенности работы бота:

  • 1. Открытие сделки:
    • • Пользователь вручную открывает первую основную позицию (лонг) с условиями:
    • • Take Profit (TP): 3%
    • • Stop Loss (SL): 1%
    • • В момент открытия основной сделки бот автоматически открывает хеджирующую позицию в противоположном направлении (шорт) с такими условиями:
    • • Take Profit (TP) хеджа: 1%
    • • Stop Loss (SL) хеджа: 0.33% (в пропорции 1:3 к TP хеджа)
    • У первой ручной сделки нет хедже первая сделка является так называемым включателем бота и все описаные условия роботы бота начинаються только после того ка первая сделка закроется по стоп лоссу
    • Лотность так же переться с первой ручной сделки и дальше работает по описаной стратегии увеличению
  • 2. Закрытие сделки по стоп-лоссу:
    • • Если основная позиция закрывается по Stop Loss (SL), бот ждёт первую минутную свечу, чтобы открыть новую сделку с теми же условиями:
    • • Take Profit (TP): 3%
    • • Stop Loss (SL): 1%
    • • При этом, хеджирующая позиция открывается с теми же условиями, что и у основной позиции, и расположена на уровне Stop Loss основной сделки:
    • • Take Profit хеджа: равен уровню Stop Loss основной сделки
    • • Stop Loss хеджа: пропорция 1:3, то есть 0.33% от TP хеджирующей сделки
    • Стоп лос хеджа закрылся и после него закрылся тейк основной позиции (тогда бот фиксирует прибыль и останавливает роботу )
    • Стоп лос хеджа закрылся и после закрылся стоп лос основной позиции ( тогда бот открывает новою сделку на новой 1минутной свече сразу после закрытия по стоплосу с увеличенным обьемом х2 по Мартингейлу и продожает работу)
    • Хедж позиция закрываеться по тейк профиту вместе с стоп лососм основной позиции тогда бот октрывает новою сделку на новой 1 минутной свече с теми же условиями только не увеичивая обьем по мартингейлу в х2
  • 3. Увеличение объёма при убыточных сделках:
    • • Если первая сделка (основная и хедж) закрывается по Stop Loss, то на следующей минутной свече:
    • • Бот открывает новую позицию с увеличением объёма в 2 раза по сравнению с предыдущей сделкой. Например, если первая сделка была 0.1 лота, вторая будет 0.2 лота.
    • Нет хедж и основаня позиция всегда имеют одинаковый обьем. просто при рахных факторах обьем меняется
    • ==Стоп лос хедж + Стопл лос основной (х2)==
    • ==Стопл лос хедж + Тейк основной (фиксирование прибли оставновка бота )==
    • ==Тейк профит хедж + Стоп лос основной ( открытие новой стелки на новой свече с теми же условиями и с тем же обьемом )==
  • 4. Закрытие хеджирующей позиции по Take Profit и основной позиции по Stop Loss:
    • • Если хеджирующая позиция закрывается по Take Profit (1%) и основная по Stop Loss (1%), бот откроет новую сделку с теми же условиями:
    • • Take Profit основной сделки: 3%
    • • Stop Loss основной сделки: 1%
    • • Хеджирующая позиция: открывается на уровне цены Stop Loss основной сделки, с Take Profit хеджа 1% и Stop Loss хеджа 0.33%.
    • • В этом случае объём сделки не увеличивается.
  • 5. Увеличение объёма при последовательных убытках:
    • • Если сначала хеджирующая позиция закрывается по Stop Loss, а затем основная позиция закрывается по Stop Loss, то на следующей минутной свече:
    • • Бот открывает новую сделку с теми же условиями (Take Profit 3%, Stop Loss 1%), но с увеличением объёма в 2 раза.
  • 6. Окончание стратегии:
    • • Процесс продолжается, пока основная позиция не закрывается по Take Profit. После этого бот начинает новый цикл с начальным объёмом и прежними условиями.

Примечания:

  • Рынок: Стратегия должна работать с валютными парами (например, EUR/USD, XAU/USD и другие). Все параметры могут быть адаптированы под разные торговые инструменты.
  • Таймфрейм: Все действия выполняются на 1-минутной свече. Бот должен точно отслеживать изменения на минутных свечах для принятия решения.
  • Увеличение объёма: При увеличении объёма на x2, бот должен корректно рассчитывать объём на следующей сделке, исходя из объёма предыдущей.
  • Тестирование: Необходимо провести тестирование стратегии на демо-счёте для анализа её эффективности и выявления возможных ошибок.

Дополнительные требования:

  • Бот должен работать в реальном времени, отслеживая рыночные условия и открывая новые сделки только по завершению предыдущих.
  • Необходимо предусмотреть систему уведомлений (например, через Telegram или email) для информирования пользователя о текущем статусе сделок и действиях бота.
  • Все данные (открытие, закрытие сделок, параметры сделок и т.д.) должны быть записаны в лог для анализа и дальнейшего улучшения стратегии.

Стратегия

Бот

  1. Бот отслеживает момент закрытия всех позиций на аккаунте по SL. Если в настройке SET_SYM_LST задан список конкретных инструментов, то отслеживаются SL только этих символов.

  2. Не важно на графике какого инструмента запущен бот. Он отслеживает все позиции.

    !!! warning ВАЖНО - На одном аккаунте нельзя запускать несколько ботов на разных графиках. - Бот должен быть запущен на ТФ M1 высоковолатильного инструмента с максимальным числом тиков.

  3. Как только бота заметит позицию, закрытую по SL, он откроет 2 сетку из двух позиций:

    1. Главную (M) в том же направлении и увеличенным в SET_LOT_RAT раз лотом, что и ручная позиция. Пропорции SL и TP сохраняются из ручной позиции. Если в ручной позиции не было TP, то в главной он будет установлен в соответствии с SET_MTP_RRD.
    2. Хедж (H) в противоположенном направлении и увеличенным в SET_LOT_RAT раз лотом, что и ручная позиция. TP устанавливается на уровне TP главной, а SL в соответствии с SET_HSL_RAT.
  4. Бот ждет закрытия главной позиции сетки и проверяет на следующей M1 свече как были закрыты позиции сетки:

    • Если главная закрылась по TP, то бот фиксирует прибыль и завершает сопровождение этой сетки.
    • Если главная закрылась по SL, то бот перейдет на следующий шаг сетки, снова открыв главную и хедж позиции:
      • тем же объемом, если хедж закрылась по TP,
      • и увеличенным на SET_LOT_RAT объемом, если хедж закрылась по SL.
  5. Бот может одновременно сопровождать несколько сеток разных или одинаковых символов.

  6. Если отображение графики включено в GRH_POS_ENB, и бот сопровождает сетки того же символа, что и активный график, то бот нарисует главные и хедж позиции шагов сетки.

  7. Бот умеет оповещать о своих действиях 3-мя способами:

    • Стандартное окно сообщений, в которое выводит свое последнее действие.
    • По email, если отправка писем настроена в терминале в настройках Tools->Options->Email.
    • Push-уведомлением в мобильную версию Meta Trader 5, если такие уведомления настроены на тот же аккаунт в настройках Tools->Options->Notifications.
  8. Бот логирует операции и ошибки в стандартный журнал в закладке Experts в выбранным в MS_LOG_LL уровнем логирования.

  9. Бот можно запустить в тестере, чтобы по шагам разобрать алгоритм его работы. Для этого настройте параметры открытия ручной позиции в разделе 4. ЭМУЛЯЦИЯ В ТЕСТЕРЕ (TST). Бот будет открывать позиции в указанное время с указанными параметрами и сопровождать их, если они закроются по SL.

Installation | Установка

EN: Installation

1. Update MetaTrader 5 Terminal: Ensure that your MetaTrader 5 terminal is updated to the latest version. For testing Expert Advisors, it is recommended to use the latest beta version. To update, go to Help->Check For Updates->Latest Beta Version. If your terminal is outdated, the Expert Advisor may not run, and you will see relevant messages in the Journal tab. 2. Copy Indicator Files: Move the *.ex5 indicator files to the terminal’s data directory MQL5\Indicators. 3. Copy the Expert Advisor File: Move the *.ex5 bot file to MQL5\Experts. 4. Copy the Script File: Move the *.ex5 script file to MQL5\Scripts. 5. Open the Symbol Chart: Open the chart for the desired trading instrument. 6. Attach the Expert Advisor to the Chart: Drag the Expert Advisor from the Navigator window onto the chart. 7. Enable Auto Trading in the Expert Advisor Settings: In the Expert Advisor settings, check Allow Auto Trading. 8. Allow DLL and WebRequests:: If your Expert Advisor uses external DLL and makes network requests, enable the Allow DLLs imports and Allow WebRequests for listed URLs param in the terminal Tools->Options settings. Add the required ones to the list of external network addresses. 9. Activate Auto Trading in the Terminal: Click the Algo Trading button on the main toolbar to enable automated trading. 10. Load the Preset Configuration: Click the Load button and select the appropriate set-file to apply the predefined settings, if provided.

RU: Установка

1. Обновите терминал MetaTrader 5: Убедитесь, что ваш терминал MetaTrader 5 обновлен до последней версии. Для тестирования Expert Advisors рекомендуется использовать последнюю бета-версию. Чтобы обновить, пройдите по ссылке Help->Check For Updates->Latest Beta Version. Если ваш терминал устарел, бот может не работать, и вы увидите соответствующие сообщения в вкладке Journal. 2. Скопируйте файлы индикаторов: Переместить файлы индикаторов *.ex5 в директорию данных терминала MQL5\Indicators. 3. Скопируйте файл советника: Переместите файл *.ex5 бота в MQL5\Experts. 4. Скопируйте файлы скриптов: Переместить файлы скриптов *.ex5 в MQL5\Scripts. 5. Откройте график символа: Откройте график нужного торгового инструмента. 6. Прикрепите эксперта к графику: Перетащите эксперта в окно графика. 7. Включите автоторговлю у советника: В настройках бота выберите пункт Allow Auto Trading. 8. Разрешите DLL и WebRequests: Если ваш эксперт использует внешние DLL и выполняет сетевые запросы, то в настройках терминала Tools->Options включите настройки Allow DLLs imports и Allow WebRequests for listed URL. В список внешних сетевых адресов добавьте нужные. 9. Включите автоторговлю в терминале: Нажмите кнопку Algo Trading на главной панели инструментов. 10. Загрузите сеты: Нажмите кнопку Load и выберите соответствующий файл для применения предопределенных параметров, если они предусмотрены.

Build From Source | Компиляция исходников

EN: Build From Source

  1. Start the IDE in MetaTrader 5. Select Tools\Meta Quotes Language Editor in the menu.
  2. Go to the Experts\<Expert's Catalogue> folder.
  3. Open the *.mqproj file.
  4. Select the Build\Compile menu item.
  5. The terminal will compile a new file *.ex5 in the same directory.

RU: Компиляция исходников

  1. Запустите IDE в MetaTrader 5. Выберите в меню Tools\Meta Quotes Language Editor.
  2. Перейдите в папку Experts\<Expert's Catalogue>.
  3. Открыть файл *.mqproj.
  4. Выберите пункт меню Build\Compile.
  5. Терминал будет компилировать новый файл *.ex5 в том же самом каталоге.

Параметры бота

1. СЕТАП (SET)
  • SET_SYM_LST: Список символов через ‘;’ (’’-все)
  • SET_LOT_RAT: Мультпликатор лота
  • SET_MTP_RRD: TP RR Основной позиции по умолчанию
  • SET_HSL_RAT: Коэф. SL для Хедж позиции от дистанции TP
2. УВЕДОМЛЕНИЯ (NTF)
  • NTF_ALM_ENB: Включить стандарные уведомления
  • NTF_EML_ENB: Включить email-уведомления через MetaTrader 5
  • NTF_PUS_ENB: Включить push-уведомления в MetaTrader 5 Mobile
3. ГРАФИКА (GRH)
  • GRH_POS_ENB: Рисовать позиции сеток
  • GRH_POS_FIL: Заливать фон основной позиции
  • GRH_POS_SLC: Цвет основной позиции SL
  • GRH_POS_TPC: Цвет основной позиции TP
  • GRH_HED_WTH: Толщина линий хеджей
  • GRH_HED_SLC: Цвет хедж позиции SL
  • GRH_HED_TPC: Цвет хедж позиции TP
4. ЭМУЛЯЦИЯ В ТЕСТЕРЕ (TST)
  • TST_1ST_DT: Время открытия Первой позиции
  • TST_1ST_DIR: Направление Первой позиции
  • TST_1ST_LOT: Лот Первой позиции
  • TST_1ST_SLD: SL Первой позиции, пункт
  • TST_1ST_RR: RR для TP Первой позиции, пункт
  • TST_NXT_DEL: Задержка перед следующей позицией, сек
5. MISC (MS)
  • MS_MGC: Expert Adviser ID - Magic
  • MS_EGP: Expert Adviser Global Prefix
  • MS_LOG_LL: Log Level
  • MS_LOG_FI: Log Filter IN String (use ; as sep)
  • MS_LOG_FO: Log Filter OUT String (use ; as sep)
  • MS_COM_EN: Comment Enable (turn off for fast testing)
  • MS_COM_IS: Comment Interval, Sec
  • MS_COM_CW: Comment Custom Window
  • MS_TIM_MS: Timer Interval, ms