Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
spvik
51
spvik  

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

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

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

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

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

Sergey Gritsay
6558
Sergey Gritsay  
spvik:

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

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

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

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

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

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

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

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

Sergey Gritsay
6558
Sergey Gritsay  
spvik:
Каков вопрос таков и ответ
Alexey Kozitsyn
6738
Alexey Kozitsyn  
spvik:

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

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

Yurij Izyumov
17071
Yurij Izyumov  

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

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

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

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

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

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

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

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

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

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

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