Получение цены сделки

 

Добрый день подскажите как сделать, уже все что можно пробовал.

Нужно получить цену последней сделки.

Пробовал, использовать через класс Ctrade, ResultOrice() - выдает ноль,

через  MqlTradeResult - result.price - тоже выдает ноль, каждый раз перебирать исполненные сделки очень долго получается.

Может есть вариант получить результат ордера, но как это можно сделать в ансихронном режиме? 

 
spvik:

Добрый день подскажите как сделать, уже все что можно пробовал.

Нужно получить цену последней сделки.

Пробовал, использовать через класс Ctrade, ResultOrice() - выдает ноль,

через  MqlTradeResult - result.price - тоже выдает ноль, каждый раз перебирать исполненные сделки очень долго получается.

Может есть вариант получить результат ордера, но как это можно сделать в ансихронном режиме? 

 Вам даже форум ссылку автоматом вставил на ваш вопрос 
 цена последней сделки по инструменту = SymbolInfoDouble(_Symbol,SYMBOL_LAST);
 
Sergey Gritsay:
Меня интересует цена не сделки на рынке, а моей исполненной сделки
 
spvik:

Вас интересует цена исполнения последнего ордера, короче говоря.

Запомнить где то надо просто после успешного открытия ордера

 
spvik:
Каков вопрос таков и ответ
 
spvik:

Навскидку, определить общее кол-во сделок: HistoryDealsTotal() (цепочку вызовов функций смотрите из документации);

Далее в цикле устроить перебор. Последняя сделка с Вашим маджиком и символом - искомая сделка. 

 

либо перебор , либо запомнить при совершении сделки. но могут быть траблы если будете перезапускать терминал, перебор сделок - более надежен

работает перебор быстро , так что не должно быть проблем и гемора - один цикл и всего делов 

 
Здесь пример. Только там в цикле по всем сделкам проход, от старых к новым, а надо в обратном направлении, пока не наткнемся на сделку с нужным символом.
 
Juriy Iziymov:

либо перебор , либо запомнить при совершении сделки. но могут быть траблы если будете перезапускать терминал, перебор сделок - более надежен

работает перебор быстро , так что не должно быть проблем и гемора - один цикл и всего делов 

нету траблов. можно в глобальные записать один раз и не мучить метак...
 
new-rena:
нету траблов. можно в глобальные записать один раз и не мучить метак...
верно , можно =))) , но не знаю на сколько это надежно , как вариант  - да 
 
Alexey Kozitsyn:

Навскидку, определить общее кол-во сделок: HistoryDealsTotal() (цепочку вызовов функций смотрите из документации);

Далее в цикле устроить перебор. Последняя сделка с Вашим маджиком и символом - искомая сделка.

Перебором очень долго происходит , у меня сделки исполняются  очень быстро по нескольким инструментам, а в историю сделок ордера приходят через 3-4 тика, не устраивает.

В документации написано в классу  Ctrade, 

mytrade.ResultPrice()Используется для получения цены, подтвержденной брокером.
но использование такой конструкции выдает ноль, пробовал брать из стакана цену по которой выставляю, иногда происходит проскальзование
Причина обращения: