작업 종료됨
명시
Создаём простой советник LEGO
Это первая версия советника, он минимален по параметрам и без сложной логики, далее будем развивать в рамках отдельных задач.
MT5, пятизнак (1 фигура= 1000 пп), Счет без неттинга.
Советник открывает ордера по простым условиям без индикаторов и т.п. Уровни цен, SL / TP, направление сделки в параметрах.
Принцип работы советника - новый ордер открывается при движении цены на определённую величину в любом направлении за определённый интервал времени.
Например, мы запустили советник и с этого момента начинаем отсчёт. При движении цены вверх на 500 (параметр DELTA) пунктов я хочу открыть сделку в противоположную (параметр DIRECTION) сторону, т.е. SELL при этом нужно проверить что это движение прошло в интервале от 30 (параметр T1) до 60 (параметр T3) минут. Т.е. если 500 пунктов цена пробежала за 5 минут или наоборот только за 200 минут, мы сделку не открываем.
Цена открытия сделки является отсчетной точкой для расчёта следующей сделки и так далее.
1) M_1 - Magic;
Tcurr_1 - это текущая цена
2) Tmin_1 - это минимальное время интервала (в минутах), по умолчанию =0.
3) Tmax_1 - это максимальное время интервала (в минутах).
4) DIRECTION_1 - направление открываемых ордеров. Если параметр F, то открываем сделку в ту же сторону, в которую шла цена до точки Т0, если параметр R, то в противоположную сторону.
5) DELTA_1 - величина изменения цены (в пунктах) при достижении или превышении которой открываем позицию.
6) V_LOT_1 = Объем позиции в лотах; Если «0» то не устанавливаем;
7) USE_AUTOLOT_1. Включение/ выключение автоматического расчёта размера лота в зависимости от маржи.YES/NO.
8) V_AUTOLOT_1. Free margin for each 0.01 lot - количество свободной маржи на открытия каждой 0.01 единицы лота.
9) MAX_OPEN_ORDERS_1 - максимально разрешенное количество ордеров данного magic, если 0 не проверяем.
10) MARGIN_STOP_LEVEL_1 – процент общей загруженности депозита в процентах, при превышении которого новые ордера не открываем. Если 0, то не проверяем.
11) SL_1 = Уровень Stop Loss в пунктах; Если «0» то не устанавливаем;
12) TP_1 = Уровень Take Profit в пунктах; Если «0» то не устанавливаем;
13) TS_1 = Уровень Trailing Stop в пунктах; Если «0» то не устанавливаем;
14) CLOSE_ALL_1 Нужна кнопка на графике, которая закроет все активные ордера данного magic. Нужно для того, чтобы если понадобится выключить советник, убрать его активные ордера.
15) CLOSE_LOCKED_1 Нужна кнопка на графике, которая закроет все активные встречные ордера данного magic, начиная со старых. Именно закрыть ордер встречным, а не закрыть поочерёдно два разнонаправленных ордера, чтобы сэкономить на спреде.
16) Нужна возможность масштабирования, чтобы я мог в скрипте самостоятельно установить несколько блоков с параметрами п.1-п.15. Для примера достаточно настроить скрипт с двумя блоками. Во вложении я добавил другой свой советник, в котором реализовано данное масштабирование.
17) IS_ACTIVE_1 = YES/NO Признак активности или неактивности для блока с параметрами, чтобы была возможность деактивировать запуск настроенного блока а не удалять его из советника
18) Нужны комментарии по коду текста процедуры с описанием где что происходит; 18) При потере связи, при перезагрузке советник должен возвращаться к штатной работе;