Подскажите, откуда берутся реквоты в тестере, это так задумано? Причем по несколько раз подряд. Потому что у вас настроено исполнение инстант экзекьюшн?
Использую стандартный класс CTrade для открытия позиций, хеджевый счет, серевр метаквотс демо, реквоты появляются при тестировании на релаьных тиках, на моделируемых, на охлс на 1 мин
билд 1405
Я однажды бился с такой проблемой дня 2 или 3. Оказалось ошибка копи-паста... Вместо Bid открывал ордер sell по Ask.
Проверь внимательно какие цены передаёшь в запрос.
Я однажды бился с такой проблемой дня 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)
Судя по представленным логам, Вы какие-то левые цены подсовываете. Откуда что берётся?
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)
А суть в том, что тестирую у брокера, и там нет ни одной ошибки.. но исполнение маркет а не инстант. Биды и аски проверял, все как надо. Текущая цена берется прямо перед открытием ордера. И когда неверная цена указаеа, то обычно ошибка 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); вот отсюдова цены беру
Вот и ошибка - перепутаны символы. "FirstSymbol" - это "EURUSD", "SecondSymbol" - это "GBPUSD". Вы при отправке Buy по "SecondSymbol" (GBPUSD) берёте цену "priceBuy" - ask c "FirstSymbol" (EURUSD).
И перед отправкой приказа протоколируйте: название символа и его цену. Таки образом сразу будут видны ошибки.
Вот и ошибка - перепутаны символы. "FirstSymbol" - это "EURUSD", "SecondSymbol" - это "GBPUSD". Вы при отправке Buy по "SecondSymbol" (GBPUSD) берёте цену "priceBuy" - ask c "FirstSymbol" (EURUSD).
И перед отправкой приказа протоколируйте: название символа и его цену. Таки образом сразу будут видны ошибки.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите, откуда берутся реквоты в тестере, это так задумано? Причем по несколько раз подряд. Потому что у вас настроено исполнение инстант экзекьюшн?
Использую стандартный класс CTrade для открытия позиций, хеджевый счет, серевр метаквотс демо, реквоты появляются при тестировании на релаьных тиках, на моделируемых, на охлс на 1 мин
билд 1405