Реквоты в тестере MT5

 

Подскажите, откуда берутся реквоты в тестере, это так задумано? Причем по несколько раз подряд. Потому что у вас настроено исполнение инстант экзекьюшн?

2016.09.07 09:27:35.947 2016.04.11 00:06:40   deal performed [#12 buy 0.01 EURUSD at 1.14069]
2016.09.07 09:27:35.947 2016.04.11 00:06:40   deal #12 buy 0.01 EURUSD at 1.14069 done (based on order #12)
2016.09.07 09:27:35.947 2016.04.11 00:06:40   instant buy 0.01 EURUSD at 1.14069 (1.14062 / 1.14069 / 1.14062)
2016.09.07 09:27:35.947 2016.04.11 00:06:39   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.41048 [requote (1.14092/1.14099)]
2016.09.07 09:27:35.947 2016.04.11 00:06:39   requote 1.14092 / 1.14099 / 1.14092 (instant sell 0.01 EURUSD at 1.41048)
2016.09.07 09:27:35.947 2016.04.11 00:06:39   CTrade::OrderSend: instant buy 0.01 GBPUSD at 1.14099 [requote (1.41048/1.41089)]
2016.09.07 09:27:35.947 2016.04.11 00:06:39   requote 1.41048 / 1.41089 / 1.41048 (instant buy 0.01 GBPUSD at 1.14099)
2016.09.07 09:27:35.947 2016.04.11 00:06:39   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.41048 [requote (1.14092/1.14099)]
2016.09.07 09:27:35.947 2016.04.11 00:06:39   requote 1.14092 / 1.14099 / 1.14092 (instant sell 0.01 EURUSD at 1.41048)
2016.09.07 09:27:35.947 2016.04.11 00:06:39   requote 1.41048 / 1.41089 / 1.41048 (instant buy 0.01 GBPUSD at 1.14099)

Использую стандартный класс CTrade для открытия позиций, хеджевый счет, серевр метаквотс демо, реквоты появляются при тестировании на релаьных тиках, на моделируемых, на охлс на 1 мин

билд 1405 

 
Maxim Dmitrievsky:

Подскажите, откуда берутся реквоты в тестере, это так задумано? Причем по несколько раз подряд. Потому что у вас настроено исполнение инстант экзекьюшн?

Использую стандартный класс CTrade для открытия позиций, хеджевый счет, серевр метаквотс демо, реквоты появляются при тестировании на релаьных тиках, на моделируемых, на охлс на 1 мин

билд 1405 

Я однажды бился с такой проблемой дня 2 или 3. Оказалось ошибка копи-паста... Вместо Bid открывал ордер sell по Ask.

Проверь внимательно какие цены передаёшь в запрос.

 
Alexey Viktorov:

Я однажды бился с такой проблемой дня 2 или 3. Оказалось ошибка копи-паста... Вместо Bid открывал ордер sell по Ask.

Проверь внимательно какие цены передаёшь в запрос.

А суть в том, что тестирую у брокера, и там нет ни одной ошибки.. но исполнение маркет а не инстант. Биды и аски проверял, все как надо. Текущая цена берется прямо перед открытием ордера. И когда неверная цена указаеа, то обычно ошибка invalid price. Похоже на то, что при интстант исполнении симулируются реквоты все-таки

2016.09.07 12:13:49.234 2016.01.15 16:00:19   CTrade::OrderSend: market sell 0.01 EURUSD.e [done at 1.09611]
2016.09.07 12:13:49.234 2016.01.15 16:00:19   order performed sell 0.01 at 1.09611 [#951 sell 0.01 EURUSD.e at 1.09611]
2016.09.07 12:13:49.234 2016.01.15 16:00:19   deal performed [#951 sell 0.01 EURUSD.e at 1.09611]
2016.09.07 12:13:49.234 2016.01.15 16:00:19   deal #951 sell 0.01 EURUSD.e at 1.09611 done (based on order #951)
2016.09.07 12:13:49.234 2016.01.15 16:00:19   market sell 0.01 EURUSD.e (1.09611 / 1.09616 / 1.09611)
2016.09.07 12:13:49.234 2016.01.15 16:00:19   CTrade::OrderSend: market buy 0.01 USDCHF.e [done at 0.99893]
2016.09.07 12:13:49.234 2016.01.15 16:00:19   deal performed [#950 buy 0.01 USDCHF.e at 0.99893]
2016.09.07 12:13:49.234 2016.01.15 16:00:19   deal #950 buy 0.01 USDCHF.e at 0.99893 done (based on order #950)
2016.09.07 12:13:49.234 2016.01.15 16:00:19   market buy 0.01 USDCHF.e (0.99879 / 0.99893 / 0.99879)
 
У Вас случайно не включена настройка "произвольная задержка" в тестере?
 
Slawa:
У Вас случайно не включена настройка "произвольная задержка" в тестере?
нет, не пользуюсь. Попробовал, что с ней что без нее одинаково реквоты.
 

Судя по представленным логам, Вы какие-то левые цены подсовываете. Откуда что берётся?

2016.09.07 09:27:35.947 2016.04.11 00:06:39   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.41048 [requote (1.14092/1.14099)]
2016.09.07 09:27:35.947 2016.04.11 00:06:39   requote 1.41048 / 1.41089 / 1.41048 (instant buy 0.01 GBPUSD at 1.14099)
 
Maxim Dmitrievsky:

А суть в том, что тестирую у брокера, и там нет ни одной ошибки.. но исполнение маркет а не инстант. Биды и аски проверял, все как надо. Текущая цена берется прямо перед открытием ордера. И когда неверная цена указаеа, то обычно ошибка invalid price. Похоже на то, что при интстант исполнении симулируются реквоты все-таки

Да вот я тоже так думал, но получал именно реквоту, а не invalid price. И именно в тестере на счёте MQ hedge.

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

 
if(!SymbolInfoTick(FirstSymbol,fpprcurr)) {Print("First Symbol price has not been received"); return;}
if(!SymbolInfoTick(SecondSymbol,spprcurr)) {Print("Second Symbol price has not been received"); return;}
double priceBuy=fpprcurr.ask;
double priceSell=spprcurr.bid;
m_Trade.PositionOpen(SecondSymbol,ORDER_TYPE_BUY,Lot,priceBuy,0,0,NULL);
m_Trade.PositionOpen(FirstSymbol,ORDER_TYPE_SELL,Lot,priceSell,0,0,NULL);

вот отсюдова цены беру
 
сейчас я еще 10 раз проверю тогда, буду читать каждый символ по 2 минуты ) там несколько таких модулей с ордерами.. скорее всего значит мой косяк.. просто меня сбывает с толку что при тестах у брокера на маркет исполнении нет ни одной ошибки
 
Maxim Dmitrievsky:

Вот и ошибка - перепутаны символы. "FirstSymbol"  - это "EURUSD", "SecondSymbol" - это "GBPUSD". Вы при отправке Buy по "SecondSymbol" (GBPUSD) берёте цену "priceBuy" - ask c "FirstSymbol" (EURUSD). 

И перед отправкой приказа протоколируйте: название символа и его цену. Таки образом сразу будут видны ошибки. 

 
Karputov Vladimir:

Вот и ошибка - перепутаны символы. "FirstSymbol"  - это "EURUSD", "SecondSymbol" - это "GBPUSD". Вы при отправке Buy по "SecondSymbol" (GBPUSD) берёте цену "priceBuy" - ask c "FirstSymbol" (EURUSD). 

И перед отправкой приказа протоколируйте: название символа и его цену. Таки образом сразу будут видны ошибки. 

Точно ) переделаю и проверю
Причина обращения: