Разработка торговых советников для MetaTrader 4 (MT4) This email address is being protected from spambots. You need JavaScript enabled to view it.
Логика работы советника "Nonfarm Gslo" для EURUSD
Советник "Nonfarm Gslo" разработан для автоматической торговли на валютной паре EURUSD, преимущественно во время выхода важных экономических новостей, таких как Nonfarm Payrolls, и других событий, отраженных в экономическом календаре. Его основная логика заключается в открытии ордеров на покупку (BUY) и продажу (SELL) в заданное пользователем время при отсутствии открытых ордеров, а также в сопровождении и закрытии этих ордеров с использованием трейлинг-стопа, тейк-профита и стоп-лосса. Дополнительно реализована функция принудительного закрытия всех открытых ордеров перед окончанием рабочего дня.
Важное замечание: Для минимизации рисков, связанных с высокой волатильностью во время выхода новостей, настоятельно рекомендуется использовать данного советника на счетах брокера с гарантированными стоп-лоссами.
1. Открытие ордеров:
- Время открытия: Советник открывает ордера на покупку и продажу в строго заданное время, которое определяется внешними параметрами Hour_Open , Minute_Open и Second_Open . Рекомендуется настраивать это время вблизи выхода важных экономических новостей.
- Условие открытия: Ордер на покупку будет открыт, если на момент наступления заданного времени нет открытых ордеров на покупку с тем же MagicNumber . Аналогично, ордер на продажу будет открыт, если нет открытых ордеров на продажу с тем же MagicNumber .
- Лотность: Размер открываемого ордера определяется внешним параметром Lots . Советник проверяет, не меньше ли заданный лот минимально допустимого значения для данного инструмента ( MODE_MINLOT ), и при необходимости использует минимальный лот.
- Параметры ордера: При открытии ордера устанавливаются стоп-лосс и тейк-профит в пунктах, заданные внешними параметрами StopLoss и TakeProfit .
- Задержка открытия: В случае неудачной попытки открытия ордера, советник делает повторную попытку через заданное количество тиков ( OpenOrderDelayTicks ).
2. Сопровождение и закрытие ордеров:
- Трейлинг-стоп: Если значение TrailingStop больше нуля, для прибыльных ордеров активируется трейлинг-стоп. Стоп-лосс автоматически подтягивается за ценой на расстояние TrailingStep пунктов, как только прибыль ордера достигнет TrailingStop пунктов.
- Закрытие по TakeProfit и StopLoss: Ордер автоматически закрывается, когда цена достигает уровня тейк-профита или стоп-лосса.
- Повторные попытки закрытия: В случае ошибки при закрытии ордера ( OrderClose error 138 ), советник предпринимает ограниченное количество повторных попыток ( CloseOrderRetries ) с заданной задержкой между ними ( CloseOrderRetryDelayTicks ). После неудачной серии попыток устанавливается дополнительная задержка ( FailedCloseDelayTicks ) перед следующей возможной попыткой закрытия. Для предотвращения многократных попыток закрытия на нескольких тиках используется флаг ( isBuyOrderBeingClosed , isSellOrderBeingClosed ) с дополнительной задержкой перед его сбросом ( CloseFlagDelayTicks ).
3. Принудительное закрытие перед окончанием рабочего дня:
- Время окончания рабочего дня: Пользователь задает час и минуту окончания рабочего дня с помощью внешних параметров WorkDayEndHour и WorkDayEndMinute .
- Условие закрытия: За 5 минут до наступления заданного времени окончания рабочего дня или позже, советник начинает процесс принудительного закрытия всех своих открытых ордеров.
- Процесс закрытия: Советник перебирает все открытые ордера с соответствующим MagicNumber и символом и закрывает их с использованием функции OrderClose() . В случае ошибки при закрытии выводится соответствующее сообщение. Процесс принудительного закрытия выполняется один раз перед окончанием рабочего дня.
4. Общие параметры:
- Lots : Размер лота для открытия сделок.
- Hour_Open , Minute_Open , Second_Open : Время открытия сделок. Рекомендуется настраивать в соответствии с экономическим календарем.
- TrailingStop , TrailingStep : Параметры трейлинг-стопа в пунктах.
- TakeProfit , StopLoss : Значения тейк-профита и стоп-лосса в пунктах.
- MagicNumber : Уникальный идентификатор (Magic Number) для ордеров советника.
- OpenOrderDelayTicks : Задержка в тиках перед повторной попыткой открытия ордера.
- CloseOrderDelayTicks : Задержка в тиках перед первой попыткой закрытия ордера.
- CloseOrderRetries : Количество повторных попыток закрытия ордера.
- CloseOrderRetryDelayTicks : Задержка в тиках между повторными попытками закрытия ордера.
- CloseFlagDelayTicks : Дополнительная задержка в тиках перед сбросом флага закрытия ордера.
- FailedCloseDelayTicks : Задержка в тиках после неудачной попытки закрытия ордера.
- WorkDayEndHour , WorkDayEndMinute : Время окончания рабочего дня для принудительного закрытия ордеров.
Советник предназначен для работы на EURUSD, M30 и использует заданные параметры для автоматической торговли во время публикации важных экономических новостей. Для обеспечения защиты от сильных ценовых колебаний и проскальзывания, рекомендуется использовать счета с гарантированными стоп-лоссами.