Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Посмотри на Топ сигналов MetaTrader 5. Выбери лучший и подпишись!
spvik
42
spvik 2016.02.03 15:54 

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

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

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

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

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

Sergey Gritsay
5543
Sergey Gritsay 2016.02.03 16:31  
spvik:

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

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

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

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

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

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

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

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

Sergey Gritsay
5543
Sergey Gritsay 2016.02.03 17:40  
spvik:
Каков вопрос таков и ответ
Alexey Kozitsyn
5678
Alexey Kozitsyn 2016.02.03 17:56  
spvik:

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

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

Yurij Izyumov
15200
Yurij Izyumov 2016.02.03 19:08  

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

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

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

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

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

нету траблов. можно в глобальные записать один раз и не мучить метак...
Yurij Izyumov
15200
Yurij Izyumov 2016.02.03 19:25  
new-rena:
нету траблов. можно в глобальные записать один раз и не мучить метак...
верно , можно =))) , но не знаю на сколько это надежно , как вариант  - да 
spvik
42
spvik 2016.02.04 06:40  
Alexey Kozitsyn:

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

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

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

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

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