Помогите решить задачу

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Grozzen
10
Grozzen  

Доброго времени суток, помогите пожалуйста новичку с решением!
Программирую советника MQL4.
Условно, для простоты на модели 1 ордера:
Открывается ордер [1] с тикетом 1, при достижении определенных условий первый [1] закрывается и открывается второй ордер [2] (тикет 2), и далее (не всегда), а при достижении определенных условий ордер [2] должен как бы стать ордером с тикетом 1 к которому снова будет применяться алгоритм, применяемый к 1.
Тоесть в ряде исходов этот процесс должен быть зациклен.

Как мне при достижении определенных условий, изменить ордер [2], что бы к нему применялся тот же алгоритм, и мог вновь открыть уже по второму ордеру новый? И так до бесконечности.
Какие могут быть решения данной задачи?

Dmitry Fedoseev
57644
Dmitry Fedoseev  
Использовать глобальную переменную терминала, в имени которой есть тикет ордера, а значение - индекс ордера в стратегии. Когда ордер останется один - поменять значение на 1. Примерно так.
Yevhenii Levchenko
3726
Yevhenii Levchenko  
Можно попробовать ввести массивы-регистраторы сделок. Типа для стратегии 1, это будет один массив, а в стратегии два - второй. В эти регистраторы пихать тикеты сделок. При закрытии - удалять. При достижении определенных условий - с одного регистратора перенести в другой. И обработку вести по регистраторам
Grozzen
10
Grozzen  
Спасибо, справился!
Я сидел тупил всю ночь, уже сам в массивы полез, но действительно, вынес индекс в переменную и он хватает нужные ордера по кругу, добавил переменную со значениями 0-1,которая равна 0 при открытии первого ордера, меняется на 1 при открытии второго и возвращается к 0 после модификации 2 ордера, и по ней все алгоритмы крутятся. Вообщем работает, супер)
Благодарю!
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий