Есть ли команды доступа к истории счета? - страница 2

 
Reshetov >>:
      if (OrderProfit() > 0) { // Проверяем выбранную позу на предмет профитности - убыточности
		Print("Поза закрылась с прибылью, а следовательно по TakeProfit");
      } else {
		Print("Поза закрылась с убытком, а следовательно по StopLoss");

ИМХО не всегда корректно: если поза была в зоне профита и тралилась, то возможна ситуация когда закроется по стопу с прибылью (чаще при непипсовочных целях в десятки/сотни пунктов). То же самое возможно в зоне убытка когда поза будет закрыта по тейку с убытком (это значительно реже встречается).

 

проблемка!

OrdersHitoryTotal() - Размер списка истории зависит от текущих настроек вкладки "История счета" терминала.

если проверка в понедельник, а закрыто в пятницу, и мы случайно забыли включить ВСЮ ИСТОРИЮ то OrdersHitoryTotal() вернет 0.

OrdersHitoryTotal() содержит удалённые ордера (которые даже не открывались). Как минимум OrdersHitoryTotal()-1 нужно проверять.

есть у кого идеи как другим способом можно найти последний ордер?

 

Если использовать OrdersHitoryTotal() - то по другому никак.

Если хотите всё контролировать - Вам тогда надо запомнить тикет прошлого ордера и проверять прибль именно по тикету ордера

OrderSelec(ticket, SELECT_BY_TICKET).

Но тогда обязательно проверяйте OrderCloseTime()>0 - признак что ордер уже закрыт.


Тикет желательно запоминать в глобальную переменную, чтоб он не исчез, когда эксперт перезагрузится.

Но если пишете только для тестера - то можно и просто в переменную.

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