Работа завершена
![](https://c.mql5.com/i/avatar/avatar_na2.png)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Техническое задание
За основу берется индикатор в приложении.(принцип основан на рисовании индикатора уровней Grid builder)
Нужен робот который при пересечении или касании круглого уровня выставлял 2 ордера.по одному ордеру buy limit и sell limit.
1) в параметрах советника указываются какие круглые уровни считать круглыми и пусть робот учитывает только ближайших 2 уровня (ближайший верхний и нижний) от настоящей цены (актуальной на тот момент)
2) пусть робот рисует эти 2 уровня визуально.
3) при пересечении(касании) одного из уровней ценой,робот должен выставить на определенное (заданное в настройках) расстояние в пунктах 2 ордера:
- над ценой sell limit
- под ценой buy limit
4) сразу при выставлении отложенных ордеров пусть робот выставляет стоп loss и тейк профит в пп заданное в настройках.
__________________________________________________________________________
теперь алгоритм работы:
5) мне нужно в настройках добавить функцию - сколько ордеров открывать после пересечения ценой "круглого" уровняи (2-4-6 уровней по паре)
6) при сигнале на открытие сначала робот пусть выставляет по одному ордеру от сработавшего уровня(один над ценой sell Limit и один под ценой buy limit).
хоть в настройках указано например 6 ордеров(6 ордеров это 3 пары =buy limit и sell limit), остальные 2-4 пары находятся в запасе.
значит тут так будет:
если в настройках указано 6 ордеров (парное число), то робот должен знать, что после выполения сигнала на выставления отложек, он открывает первую пару ордеров(по одному sell и buy limit) и ждет пока один из них сработает.
когда сработал один ордер их двух (любой),то второй отложеный ордер не убирается.
как только поймали прибыль то прибыльный ордер закрывается и с ним его пара не сработавший.
после прибыльной сделки робот должен выставить ордера отложеные из запаса (вторую пару sell limit и buy limit) и снова ждать отработки. и так по кругу пока не отработаются все отложки из запаса.
потому что если поймали прибыль значит мы крутимся вокруг одного уровня.
если робот ловит лося то робот перестает выставлять отложки и ждет нового сигнала(пересечения уровня) и второй ордер (его пара) закрывается и уже не открывает на том же уровне
НО тут так. если стоп лосс находится на круглом уровне,то это и сигнал на пересчет сигнала по новому уровню и сигнал ,что по предыдущему уровню сигналы отменяются и не отработавшие пары (по предыдущему уровню) аннулируются
и все начинается сначала только по отношению к новому круглому уровню.
если я вручную закрыл ордер,то робот должен понимать что это будто взяли прибыль и снова по кругу.
потому что есть опыт когда надо закрыть самому.
должно получится просто и удобно и без глюков.