помогите с функцией !!!!!

 

прошу помощи, может кто подкинет идею, а лучше конечно если есть готовое решение...

Суть проблемы такова. Пишу советник но хочу добавить один алгоритм но что-то ничего путевого не получается.


исходные данные таковы = советник выставляет по времени отложенные ордера (границы канала). то есть в работе одновременно могут находиться и стоповые ордера и рыночные (общее количество не известно).

НУЖНО = функция должна определить ордер у которого просадка составила некоторую величину (например минус 150 пунктов) и выставить отложенный ордер большего объема в туже сторону. при этом нужно модифицировать рыночный ордер (просевший) перенести его стопы так чтобы он закрылся одновременно с выставленным отложенником но уже в безубытке.

Проблема в том, что не могу добиться чтобы эта операция выполнялась только ОДИН раз, а не выставлялись отложенники каждый раз как только просадка пересекает определенный уровень. То есть нужно как-то ПОМЕТИТЬ отработанный "просевший" ордер чтобы его больше не отслеживать....

СПАСИБО ЗА ПОМОЩЬ...

 
А что мешает ввести для ордера булеву переменную, или если ордеров много то массив булевых переменных? Конечно в этом случае не помешала бы структура в которой хранился бы номер ордера и соответственно флаг но можно и доступными средствами обойтись.
 

Два варианта на выбор :)


1. когда откроете начальный ордер, то создайте для него переменную  GlobalVariableSet("Revers"+sID+OrderTicket(), false)

а затем когда откроете для него требуемый переворотный ордер - то измените Глобальную переменную 

GlobalVariableSet("Revers"+sID+OrderTicket(), true)

Теперь при каждой попытке выставить обратный ордер по убытку текущего - просто проверяйте глобальную переменную для этого тикета. И если он true, то ордер выставлять не надо.

sID=Symbol()+Magic+IsDemo()+IsTesting()+IsOptimize(); - чтоб исключить пересечение имён парамтеров в разных режимах.


2. - выставить противоположный ордер с Маджиком=Тикету начального (убыточного) ордера. В этом случае надо просто проверять не переменную, а маджик у ордеров.

Вобщем всё зависит от удобства применения в конкретной стратегии. Я пользуюсь любыми из трёх.

 
sergeev писал(а) >>

Два варианта на выбор :)

sID=Symbol()+Magic+IsDemo()+IsTesting()+IsOptimize(); - чтоб исключить пересечение имён парамтеров в разных режимах.

IsOptimization()

 
сори, писал по памяти (привык к подсказке МE :)). но думаю кому надо поймёт.
 
Вариант с магиком равным тикету наиболее универсален и прост.
 

Огромное спасибо за идеи....   


А ТУТ БУДУ ВСЕ ЭТО ИСПЫТЫВАТЬ  ---->>  http://voloshin-fxcci.blogspot.com/

Причина обращения: