Как правильно выбрать последний ордер в истории? - страница 5

 
Yrii Kuksov:

У Вас цикл совсем не цикл. Вот эти две строчки не в цикле for:

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)  // теперь, когда в переменную i записался номер последнего ордера

{

if(OrderProfit<0 && OrderType==OP_BUY)  // Проверяю, если Прибыль выбранного ордера меньше нуля и данный ордер я вляется ордером на покупку, то..

 {

 ticket=OrderSend.. OP_SELL.. и так далее..

 }

}

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

 
Andrei Fandeev:

Зачем Вы перебираете все ордера в истории?
Сделайте перебор наоборот, от OrdersHistoryTotal  к Нулю. i--

И при первом же найденном ордере прервать цикл.

Вот, как пример, нахождение направления последнего закрывшегося ордера:

Вместо/перед return Вам нужно вставить проверку Профит больше или меньше нуля. Ну и дальше в зависимости от задачи которая поставлена.

Насчет того что перебор ордеров нужно делать наоборот от OrdersHistoryTotal  к Нулю - я согласен. И теперь буду делать именно так. Спасибо!

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