SergeyN:
Коллеги, просьба подсказать где косяк.
- Цикл по рабочим ордерам, а выбираются ордера из истории. Нужно тогда и цикл сделать по ордерам истории, т. е. OrderSelectHistory(), а не OrdersTotal().
- Не инициализирована переменная при объявлении. В некоторых случаях maxTime изначально может быть не равен нулю.
- При неудаче выбора ордера вовсе не обязательно прерывать цикл. Можно попробовать выполнить следующую итерацию, заменив break на continue.
Ihor Herasko:
- Цикл по рабочим ордерам, а выбираются ордера из истории. Нужно тогда и цикл сделать по ордерам истории, т. е. OrderSelectHistory(), а не OrdersTotal().
- Не инициализирована переменная при объявлении. В некоторых случаях maxTime изначально может быть не равен нулю.
- При неудаче выбора ордера вовсе не обязательно прерывать цикл. Можно попробовать выполнить следующую итерацию, заменив break на continue.
Игорь, огромное спасибо. Действительно проблема была в том, что я неправильно определял количество через OrdersTotal().
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Коллеги, просьба подсказать где косяк.
Здесь есть функция нахождения последнего ордера: https://www.mql5.com/ru/forum/131859/page4#434227
Взял ее за основу. И пытаюсь узнать последний ордер является прибыльным или нет. Для этого пишу такой код:
Эта функция вызывается перед открытием нового ордера и проверяет предыдущий был прибыльным или нет. Если был убыточным - новый не открывать.
Функция вызывается перед открытием каждого ордера.
Как видно она должна оставить следы в журнале. Но почему то этого не происходит. Такое ощущение, что в историю ордера попадают не сразу, а через несколько баров.
Тут видно, что Ордер №3 убыточный, но при этом перед открытием ордера №4 информации об этом ордере не было. Более того, видно в коде что первый Print вообще без условный - т.е должны быть выведены все ордера на покупку. Но их почему то нет.
Где косяк?