工作已完成


指定
Необходима разработка эксперта на языке MQL5.
Данная идея одна из вариаций сеточной стратегии.
В результате я бы хотел получить файлы со скриптами и комментариями.Файлы для запуска онлайн, и для проверки на истории.
Далее расписываю саму логику робота.
Бот работает на паре EURJPY.
При запуске ищется базовый уровень. Базовый уровень - это цена до второго знака после запятой. На питоне этот поиск выглядел следующим образом: бралась цена bid (у нее три знака после запятой), например 148.671, округлял её до двух ближайших потенциальных уровней, в нашем примере это 148.67 и 148.68 и ждал, когда цена bid коснётся одного из них. Возможно, поиск базового уровня можно организовать намного проще. Базовый уровень ищется один раз при запуске советника, больше к этому не возвращаемся.
У бота есть несколько линий:
Базовая линия (базовый уровень, base_line) – линия бота, от которой ведутся все расчеты.
Order_line – линия, на которой бот входит в сделку по limit или по stop. Находится на +-40 пунктов от базовой линии.
TakeProfit_line – при достижении этой линии должен срабатывать TakeProfit и выставляться ордер на Order_line. Находится на +-60 пунктов от базовой линии.
New base_line – обновление базового уровня, на +-500 пунктов от базовой линии.
Далее для простоты объяснения, приведу пример на базовом уровне 150.00 и только на сделках Buy. Сторона Sell делает все то же самое, только зеркально.
После нахождения базового уровня (150.00), бот выставляет ордер на покупку Buy_limit на order_line (149.60). В данный момент у бота есть два варианта:
• Вверху его ждёт новый базовый уровень на +500 пунктов (155.00)
• Внизу будет вход по order_limit на 40 пунктов от базовой линии (149 60).
При достижении нового уровня, можно сказать что бот начинает круг заново, единственное, ему нужно удалить предыдущий выставленный ордер. У бота не может быть открыто несколько сделок или выставлено несколько ордеров! Либо один ордер, либо одна открытая сделка.
При достижении order_limit открывается сделка с тейкпрофитом на TakeProfit_line и стоплоссом (про стопы далее будет подробнее).
При достижении тейкпрофита закрывается сделка в плюс. Два дальнейших варианта:
• Сверху новый базовый уровень на +500 пунктов (155.00)
• Снизу выставляется ордер на Order_line, то есть назначение -60 от базовой линии (149.60).
При достижении стопа:
• Выставляется ордер стоп на уровень Order_line сверху.
• Снизу ждёт новый уровень на -500 базовый уровень на 145.00.
Одной из особенностей данного бота является разное значение стопа. Первый стоп равен 15, второй – 30, третий – 15. Далее бот должен принимать значения по этому кругу.
15 – 30 – 15 – 15 – 30 – 15.
При достижении нового базового уровня или тейка, стоп должен начинать круг заново с 15.
Теперь к главному. Таких базовых уровней должно быть 100. Через 5 пунктов каждый. То есть при первом базовом уровне на 150.00 следующий уровень будет либо на 150.05 либо 149.95. Логика новых уровней ничем не отличается, у каждого есть свой Order_line, TakeProfit_line и New base_line. Уровни должны быть адаптивны, если рынок пойдет в одну сторону, уровни должны открываться через 5 пунктов вплоть до 154.95 если рынок пойдет строго вверх или 145.05 если вниз. Уровни друг от друга не зависят и никак не влияют друг на друга. Если получится регулировать количество уровней переменной – будет супер.
Еще прошу добавить комментарии к сделкам и ордерам. В комментариях нужно указать базовую линию, например 150.00. Этого достаточно. Также, прошу добавить логи, которые сохраняются в отдельный файл. В логах достаточно добавить время, тип сделки (открытие, стоп, тейк, выставление ордера, новый уровень) и базовый уровень бота с кем это произошло.
В результате должен получиться советник, который при запуске находит базовый уровень и выставляет 2 ордера один buy limit другой sell limit (на + и - 40 соответственно). Далее опустившись или поднявшись на 5 пунктов найдется новый базовый уровень и снова выставятся два ордера также по +-40 уже от этого базового уровня. Далее открытые сделки будут закрываться по стопа или тейкам, а новый уровни будут находиться.
Прикладываю блок схему для сделок Buy:
Вложение 1
Линии для Buy выглядят следующим образом:
Вложение 2
Для сделок Sell, по сути все тоже самое, прикладываю чтобы не запутаться:
Вложение 3
Линии для Sell выглядят следующим образом:
Вложение 4