49. NYMB-MGridAssistant-MT5-Bot
Бот-ассистент сопровождает ручную сделку, автоматически усредняя ее двумя Мартингейл-сетками
- Designed by https://www.mql5.com/ru/job/233710
- Coded by Denis Kislitsyn | denis@kislitsyn.me | kislitsyn.me
- Version: 1.05
Что нового?
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). Задача: Автоматизация стратегии с использованием Мартингейла и хеджирования.

Основные особенности работы бота:
- 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) для информирования пользователя о текущем статусе сделок и действиях бота.
- Все данные (открытие, закрытие сделок, параметры сделок и т.д.) должны быть записаны в лог для анализа и дальнейшего улучшения стратегии.
Стратегия

Бот отслеживает момент закрытия всех позиций на аккаунте по SL. Если в настройке
SET_SYM_LSTзадан список конкретных инструментов, то отслеживаются SL только этих символов.Не важно на графике какого инструмента запущен бот. Он отслеживает все позиции.
!!! warning ВАЖНО - На одном аккаунте нельзя запускать несколько ботов на разных графиках. - Бот должен быть запущен на ТФ M1 высоковолатильного инструмента с максимальным числом тиков.
Как только бота заметит позицию, закрытую по SL, он откроет 2 сетку из двух позиций:
- Главную (M) в том же направлении и увеличенным в
SET_LOT_RATраз лотом, что и ручная позиция. Пропорции SL и TP сохраняются из ручной позиции. Если в ручной позиции не было TP, то в главной он будет установлен в соответствии сSET_MTP_RRD. - Хедж (H) в противоположенном направлении и увеличенным в
SET_LOT_RATраз лотом, что и ручная позиция. TP устанавливается на уровне TP главной, а SL в соответствии сSET_HSL_RAT.
- Главную (M) в том же направлении и увеличенным в
Бот ждет закрытия главной позиции сетки и проверяет на следующей M1 свече как были закрыты позиции сетки:
- Если главная закрылась по TP, то бот фиксирует прибыль и завершает сопровождение этой сетки.
- Если главная закрылась по SL, то бот перейдет на следующий шаг сетки, снова открыв главную и хедж позиции:
- тем же объемом, если хедж закрылась по TP,
- и увеличенным на
SET_LOT_RATобъемом, если хедж закрылась по SL.
Бот может одновременно сопровождать несколько сеток разных или одинаковых символов.
Если отображение графики включено в
GRH_POS_ENB, и бот сопровождает сетки того же символа, что и активный график, то бот нарисует главные и хедж позиции шагов сетки.Бот умеет оповещать о своих действиях 3-мя способами:
- Стандартное окно сообщений, в которое выводит свое последнее действие.
- По email, если отправка писем настроена в терминале в настройках
Tools->Options->Email. - Push-уведомлением в мобильную версию Meta Trader 5, если такие уведомления настроены на тот же аккаунт в настройках
Tools->Options->Notifications.
Бот логирует операции и ошибки в стандартный журнал в закладке
Expertsв выбранным вMS_LOG_LLуровнем логирования.Бот можно запустить в тестере, чтобы по шагам разобрать алгоритм его работы. Для этого настройте параметры открытия ручной позиции в разделе
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
- Start the IDE in MetaTrader 5. Select
Tools\Meta Quotes Language Editorin the menu. - Go to the
Experts\<Expert's Catalogue>folder. - Open the
*.mqprojfile. - Select the
Build\Compilemenu item. - The terminal will compile a new file
*.ex5in the same directory.
RU: Компиляция исходников
- Запустите IDE в MetaTrader 5. Выберите в меню
Tools\Meta Quotes Language Editor. - Перейдите в папку
Experts\<Expert's Catalogue>. - Открыть файл
*.mqproj. - Выберите пункт меню
Build\Compile. - Терминал будет компилировать новый файл
*.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