Работа завершена
Техническое задание
Уважаемые программисты, нужен советник на основе 3_Level_ZZ_Semafor. Файл индикатора во вложении.
Перечень действий которые должен уметь выполнять советник:
1. Определять уровни входа по алгоритму описанному ниже.
2. Выставлять рыночные ордера на покупку/продажу любого инструмента имеющегося в терминале Alpari MT5.
3. При постановке ордеров устанавливать Stop Loss и Take Profit.
4. Отслеживать уже установленные ордера и устанавливать/не устанавливать следующие (в зависимости от настроек).
5. Отслеживать уровень безубыточности и двигать Stop Loss по алгоритму описанному ниже.
6. Тралить по алгоритму описанному ниже.
7. (Удален)
8. Учитывать время образования сигнала 1 и игнорировать его внутри заданного интервала. Интервал задается в часах:минутах.
9. Учитывать время постановки ордера и выставлять его только внутри заданного интервала. Интервал задается в часах:минутах.
1. Определение уровня входа. Описание на примере входа в лонг. В шорт все зеркально наоборот. Уровень входа образуется при появлении сигналов 3_Level_ZZ_Semafor с параметром Period 3 (см.настройки индикатора), на графике - это самый большой сигнал. Должны появиться сигналы 0 и 1. Тогда уровень входа - это высшая точка свечи на которой образовался сигнал.
2.Выставление ордера. Ордер на покупку по рынку выставляется при достижении ценой уровня HIGH свечи на которой образовался сигнал 0. См. картинку ниже. Ордер выставляется в ЛОНГ. Для шорта все зеркально.
В случае, если образовался сигнал 2, вход не происходит. Сигнал 2 - это сигнал семафора направленный в ту же сторону, что и сигнал 1. На картинке ниже, пример НЕ ВХОДА в шорт.
3. При постановке ордера выставляется Stop Loss и Take Profit.
4. При постановке ордера советник должен проверять есть ли уже установленные ордера. При значении параметра "Множественные ордера" = true - ордер выставляется даже если уже есть выставленный. При значении false - ордер не выставляется пока не закрыт предыдущий.
5. По достижении уровня безубыточности (задается в настройках), при лонге, Stop Loss должен двигаться выше уровня входа, на значение "Дельта безубыточности" задаваемое в настройках. (При шорте - ниже уровня входа). См. картинку ниже.
6. При достижении ценой значения "Уровень траления", задаваемого в настройках, должен включаться трал двигающий Stop Loss по мере роста цены и снимающий Take Profit. В случае значения "Уровень траления" = 0 - трал не включается. "Трейлинг стоп", так же задается в настройках.
8. Время образования сигнала 0. Задается в формате начало - ЧЧ:ММ - конец ЧЧ:ММ. Если сигнал образовался ВНЕ этого интервала, ордер не выставляется. При значениях 00:00 - 00:00 - время не проверяется.
9.Время постановки ордера. Задается в формате начало - ЧЧ:ММ - конец ЧЧ:ММ. ВНЕ этого интервала ордер не выставляется. При значениях 00:00 - 00:00 - время не проверяется.
Каждый ордер должен иметь уникальный номер.
Советник должен работать на всех таймфреймах и всех инструментах в терминале Alpari MT5 на реальном счете. Советник должен корректно работать в Тестере стратегий и результаты "прогонов" на графике цены и в тестере не должны отличаться.
В советнике должна быть предусмотрена защита от не постановки ордера.
В состав работ входят небольшие модификации, не более 10% от общего объема кода. Объем рассчитывается по договоренности или по количеству знаков.
Настройки цвета индикатора по умолчанию изменить на те что на скриншоте ниже.