Как сделать доступ к истории без тикета (по индексу)?

 
Добрый всем вечер!

Помогите, кто знает, советом.

Есть такая функция в эксперте:
double aLastProfit()
	{
	int OrderTime = 0;
	double Profit = 0;
	for (int i = 0; i < OrdersTotal(); i ++)
		if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
			if (OrderCloseTime() > OrderTime)
				{
				OrderTime = OrderCloseTime();
				Profit = OrderProfit();
				}
	return(Profit);
	}


Смысл её в том, чтобы получить значение прибыли у последнего закрытого ордера. Но она всегда выдаёт ноль. Почему? Включает ли OrdersTotal() закрытые и удалённые ордера? Как добраться до закрытого ордера по номеру индекса?

Заранее благодарю за помощь!

 
Уважаемый Sergo ф-ия "OrdersTotal()" возвращает общее количество открытых и отложенных ордеров, а Вам нужна HistoryTotal() с параметром "MODE_HISTORY". Будьте внимательны.
P.S. потому-то и возвращает 0, что у всех открытых и отложенных ордеров время закрытия пока еще отсутствует и условие "OrderCloseTime() > OrderTime" не выполняется.
 
Посмотрите в справке bool OrderSelect() в части использования параметра MODE_HISTORY.
 
Огромное спасибо всем за подсказку!

Просто ни разу не пользовалься функцией HistoryTotal(). Оказывается, это аналог OrdersTotal(), только для закрытых и удалённых ордеров. Теперь всё понятно. А я пытался сохранять у каждого ордера уникальный тикет. Ещё пробовал следить за изменениями AccountBalance(). Это всё муторно и ненадёжно.

В вышеупомянутой функции всего лишь нужно заменить вызов OrdersTotal() на HistoryTotal(). Только и всего.

Ещё раз спасибо!
 
В вышеупомянутой функции всего лишь нужно заменить вызов OrdersTotal() на HistoryTotal(). Только и всего.

Не только.
 
Не только.

Поясните, пожалуйста. Что ещё нужно изменить, кроме замены функции?
 
OrderType()
 
OrderType()

Не согласен.

Дело в том, что, по моему разумению, прибыль удалённого отложенного ордера равна нулю. А именно это мне и нужно. Мне не надо проверять тип ордера в истории. Нужен именно профит последнего ордера. Независимо от его типа. Так уж устроен эксперт, такая у него логика.

В вышеупомянутом примере просто заменил OrdersTotal() на HistoryTotal(), и всё заработало как надо. Прогонял тесты на истории, потом водил пальцем по результатам тестирования. Проверял, отрабатывает ли эксперт именно мою задумку. Всё ок!

Спасибо за помощь!