Pavlik20:
получается так, что если последним ордером был Buy, то z все равно будет считаться,
С чего это он будет считаться? Логически все построено правильно, правда я ни разу не видел такого странного способа определения нулевого бара. И готовьтесь, в реальной торговле номер тикета никогда не будет соответствовать количеству ордеров в истории.
Доброго дня. Попробуйте следующий цикл перебора ордеров:
for ( i=OrdersHistoryTotal()-1; i>=0; i-- ) //Цикл по всем закрытым ордерам,.. { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true) { if( OrderType() == OP_BUY)//Для ордеров по покупке { //Ваши действия } } }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Коллеги, прошу помочь разобраться. Вот часть кода:
Идея заключается в том, чтобы получить значения bool-переменной y или z в зависимости от того, какой ордер закрылся последним. Но получается так, что если последним ордером был Buy, то z все равно будет считаться, т.к. CPb=CPs, а CTb=CTs. Ошибку осознаю, но не знаю как исправить.
Вопрос: каким образом нужно исправить код так, чтобы если мы выбрали закрытые ордера по покупке, то OrderClosePrice и OrderCloseTime и другие характеристики считались именно по покупке (продаже).