Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Почитай интервью участников Automated Trading Championship
Oleg Shenker
9460
Oleg Shenker 2016.10.08 20:19 

Все-таки решил воспользоваться мнением знатоков. У кого какой опыт в использовании обработчиков событий OnTrade() и OnTradeTransaction() для проверки наличия открытых позиций.

Можно проверять наличие открытой позиции прямо из функции OnTick() с помощью PositionSelect(). Плюс в том, что можно менять ход выполнения программы прямо на месте, не дожидаясь возникновения события OnTradeTransaction(). Минус в том, что, по опыту некоторых разработчиков (сам с таким не сталкивался), функция PositionSelect() иногда срабатывает некорректно. Еще раз сам никогда с этим не сталкивался, поэтому предпочитаю именно этот метод.

Можно проверять наличие открытых позиций в обработчиках торговых событий. Минус в том, что изменить ход выполнения программы я могу только после обработки торгового события и изменения соответствующего флага. А значит, чисто теоретически, если новый тик придет раньше обработки события (флаг еще опущен, новый тик снова показывает сигнал на сделку) советник заключит еще одну сделку.

Поделитесь вашими предпочтениями, как все-таки лучше. 

Alexey Viktorov
6678
Alexey Viktorov 2016.10.08 22:16  
Очень большой плюс в том, что в структурах OnTradeTransaction() столько информации об отрытой позиции, что столько не всегда надо...
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий