Работа завершена
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Техническое задание
1. После запуска советник сразу же открывает 2 ордера. Тип выборочный:
Пример: Type Order ---- Market, Pending
Если выбрать Market, то открываются 2 ордера Sell и Buy по рыночной цене (замок).
Если выбрать Pending, то открывается 2 лимитных ордера Buy Limit и Sell Limit c заданным интервалом от рыночной цены. Этот интервал должен задаваться в отдельной графе:
Пример: First Distance --- 3
Это значит советник поставит 2 отложных ордера общим интервалом шесть пунктов друг от друга.
Эту задачу советник должен открыть как можно быстрее, т.к. цена может двинутся и заданные интервалы исполнятся с отклонениями. Дальнейшая работа советника будет отталкиваться от этих ордеров.
2. Теперь нужно разобраться построением сетки. Количество и лотность ордеров задается пользователем. Take Profit и Stop Loss задается для каждого ордера отдельно. Все параметры зеркально одинаковы. Открываются только Buy Limit и Sell Limit ордера.
Пример: Volume --- (0.01_20_40) (0.04_20_40) (0.04_20_40) (0.07_20_40) (0.28_20_20)
Grid Distance ---- 18_18_18_20_40
Это значит, первые 2 ордера (о которых говорилось в первом абзаце) откроются 0,01 лотом, стоплос 20 пунктов, тейкпрофит 40 пунктов. С интервалом 18 пунктов от этих ордеров откроются 2 отложенных ордера Buy Limit и Sell Limit 0,04 лотом, стоплос 20 пунктов, тейкпрофит 40 пунктов. Интервал между ордерами задается в отдельной графе Grid Distance. Если в соответствующие поля поставить значение 0, то тейкпрофит и стоплос не будет установлен.
Пример: Volume --- (0.01_20_0) (0.04_0_40) (0.04_0_0) (0.07_20_40) (0.28_20_20)
Это значит, у первого ордера размер 0,01 лот, стоплос 20 пунктов, тейкпрофит не ставиться. У второго ордера размер 0,04 лот, стоплос не ставиться, тейкпрофит 40 пунктов. У третьего ордера размер 0,04 лот, стоплос и тейкпрофит не ставиться и.т.д..
Если вначале выбран параметр Market, то Buy Limit считает дистанцию от уже открытого Buy ордера. Если выбран параметр Pending, то Buy Limit считает дистанцию от Buy Limit ордера
Если вначале выбран параметр Market, то Sell Limit считает дистанцию от уже открытого Sell ордера. Если выбран параметр Pending, то Sell Limit считает дистанцию от Sell Limit ордера
После исполнения этого шага советник ставит алерт «Grid Built»
3. После выставления ордеров и уровней стоплос и тейкпрофит, советник будет ждать, пока не закроется какой-либо ордер по тейкпрофиту. Триггер для дальнейшего действия именно тейкпрофит либо авто закрытия по профиту (см. п.6). После исполнения этого условия, советник должен закрыть все отложные ордера в стороне этого закрывшегося по тейкпрофиту ордера.
Пример: допустим по тейкпрофиту закрылся первый по счету Buy ордер в сетке 0,01 лотом. Значит советник закроет все отложенные Buy Limit ордера, Sell Limit-ы не трогает. Если закроется какой-либо Sell ордер в сетке, советник закроет все отложенные Sell Limit ордера, Buy Limit-ы не трогает.
Ставит алерт «First TakeProfit Close Grid »
4. После этого советник будет ждать второго срабатывания тейкпрофита либо авто закрытия по профиту (см. п.6). После исполнения этого условия, советник закрывает оставшиеся отложные ордера. Ставит алерт «End »
5. Теперь советник будет ждать заданное пользователем время, потом все начнется с 1-го пункта.
Пример: Waiting time --- 15
Время задается в минутах. Советник ждет 15 минут и открывает ордера согласно заданным установкам.
6. В параметры советника нужно добавить авто закрытие ордеров по достижению определенного уровня профита или убытка в пунктах.
Пример: Auto Profit Closure --- 40
Разъяснения примера: по достижению какого-либо ордера в 40 пунктов профита, советник закроет этот ордер и это будет триггером в пункте 3. Если поставить значение 0, то функция отключена.
Пример: Auto loss Closure --- -20
Разъяснения примера: по достижению какого-либо ордера в -20 пунктов убытка, советник закроет этот ордер. В отличии от Auto Profit Closure эта функция нигде не выступает в роли триггера.
7. На алерты нужно поставить тумблер
Пример: Alerts ---- 0 ( 0- алерты отключены, 1- алерты разрешены)
· Советник не должен реагировать на вмешательства пользователя. Например, если изменить уровни стоплос и тейкпрофит или удалить какой-либо ордер в сетке вручную, то советник не должен заглючить и продолжать работу с заданными параметрами.
· Если остановить авто-торговлю или удалить советник из графика, он должен остановиться без какого-либо действия.
· Советник должен быть устойчив к разрывам сети или перезапуску терминала. Например, после того как советник построил сетку и ждет срабатывания первого тейкпрофита, если перезапустить терминал, советник должен продолжать работу с того же момента. То есть, после перезапуска должен дальше ждать срабатывания первого тейкпрофита. Точно так же с разрывами сети. К примеру, у меня есть советник, который закрывает все отложные ордера после достижения общего профита в пунктах, но, если происходит разрыв сети, после восстановления он сразу же закрывает все ордера, не выполнив заданное условие. Я не программист и не понимаю из-за чего он так поступает, но так советник не должен работать.
· Все что показано в примерах можете изменять как Вам удобнее, главное, чтобы все работало в соответствии с тех. заданием.
За успешное выполнение работ с первого раза дополнительно $10