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

 
Есть ли команды доступа к истории счета? Нужно узнать из истори по какому закрылся предидущий ордер по стопу или профиту.
 
004alex >>:
Есть ли команды доступа к истории счета? Нужно узнать из истори по какому закрылся предидущий ордер по стопу или профиту.

OrderSelect()

 
сначала OrderSelect(),затемOrdersHistoryTotal()
 

Наверное как-то так:

      int OrdersHistTot = OrdersHitoryTotal();
      for (int i = 0; i < OrdersHistTot; i++) {
         OrderSelect(i,SELECT_BY_POS, MODE_HISTORY);
         // ... работа с ордерами ...
      }
 
goldtrader писал(а) >>

Наверное как-то так:

Спасибо за ответ. Но как я узнаю по какому параметру закрыт например последний ордер?

 
Хелп
 
Поищите в полезных функциях от Kim. Там что-то такое мелькало.
 
004alex >>:

... как я узнаю по какому параметру закрыт например последний ордер?

Нужно в цикле перебора ордеров сравнивать их времена закрытия.

Выбрать последний закрытый (у которого время закрытия имеет наибольшее значение).

Сравнить его цену закрытия с ценой TP и SL.

Желательно с некоторым допуском (1-3пп) т.к. позиция могла быть закрыта с проскальзыванием.

.

А вообще у КИМа есть всё или почти всё.

Чего нет, попросите - сделает.

 
goldtrader >>:

Нужно в цикле перебора ордеров сравнивать их времена закрытия.

Выбрать последний закрытый (у которого время закрытия имеет наибольшее значение).

Сравнить его цену закрытия с ценой TP и SL.

Желательно с некоторым допуском (1-3пп) т.к. позиция могла быть закрыта с проскальзыванием.

.

А вообще у КИМа есть всё или почти всё.

Чего нет, попросите - сделает.

есть более простой вариант==> после того как ордер выбран,использовать OrderProfit()

 
004alex писал(а) >>

Спасибо за ответ. Но как я узнаю по какому параметру закрыт например последний ордер?

Через функцию OrderProfit()



      int lastorder = OrdersHitoryTotal() - 1; // Выбираем порядковый номер последней закрытой позы
      OrderSelect(lastorder, SELECT_BY_POS, MODE_HISTORY); // Выбираем позу из истории закрытых сделок по ее порядковому номеру
      if (OrderProfit() > 0) { // Проверяем выбранную позу на предмет профитности - убыточности
		Print("Поза закрылась с прибылью, а следовательно по TakeProfit");
      } else {
		Print("Поза закрылась с убытком, а следовательно по StopLoss");

      }
 
Reshetov писал(а) >>

Через функцию OrderProfit()


Спасибо все супер!

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