При тестировании на RealTimeEmulationTrader при значении настройки у MarketEmulator MatchOnTouch = false заполнение заявок происходит путем «прошивания» уровня цены заявки. При этом цена полученной сделки принимает значение лучше, чем была выставлена цена у лимитированной заявки, что не отражает реальную картину. В связи с тем, что на реальном рынке цена сделки практически всегда соответствует цене заявки.
Подскажите, пожалуйста, каким образом сделать, чтобы при значении настройки MatchOnTouch = false у MarketEmulator заполнение заявок происходило по ценам самих заявок (как при MatchOnTouch = true, но с «прошиванием» уровня цены заявки, а не касанием)?
PS. Речь идет о лимитированных заявках выставленных единичным лотом.
Kommentare (10)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Вы же клиент обучения? Скачайте участок ОЛ с контакта, постройте распределение по цене заявки и сделки. И увидите, что это не так.
Выразился не совсем так. С ордер логом согласен, я имел в виду свои заявки, они в 99% случаев исполняются по ценам самих заявок на реале, потому что выставляются всегда ниже бида в случае бая и выше аска в случае селла. А вот если рассматривать эмуляцию при MatchOnTouch = false, то там исполнение, как я уже писал, происходит всегда лучше цены заявки. И в результате получается, что к каждой сделке «приклеивается» пункт, которого на реале практически никогда не встретить.
При включенной опции MatchOnTouch = false исполнение заявки дожидается, когда цена прошьет ее уровень. Рынок уровень прошивает, происходит исполнение, но, как мне кажется логичным, оно должно происходить по цене заявки, а не по цене на сколько данный уровень прошьется. Всё это естественно применимо для заявок, которые выставляются ниже рынка в случае бая и выше в случае селла.
Подскажите, каким образом можно повлиять на цену исполнения заявок?
Или я вас не понимаю, или вы говорите о разных вещах. Цена сделки у лимитки всегда не хуже цены заявки. В этом ее смысл.
Если вы стоите в стакане, и по вам ударяют, то цена ваших сделок будет всегда = цене заявки.
Если вы ударяете по стакану, то цена ваших сделок будет >= лучшей противоположной цене и <= цене заявки.
Вот я как раз об этом, я выставляю отложку, то есть «стою в стакане». По мне «ударяют», то есть прошивают уровень моей заявки, и на реале практически всегда цена сделки получается равной цене заявки. А вот у MarketEmulator при MatchOnTouch = false в таком случае сделка принимает значение цены лучше, чем у заявки.
По моему мнению, это достаточно оптимистический сценарий, который очень редко встречается на реальном рынке, поэтому присутствует необходимость данный момент подправить.
Мы о разных вещах видимо говорим. Не может быть такого как "практически всегда".
То незначительное количество сделок на реале, которые получали цены лучше заявок, видимо, как отметил [USERLINK]devruss[/USERLINK], попросту не успевали вовремя выставляться в нужное место. Спасибо, с этим понятно.
Используя следующий код:
вывожу лог исполнения сделок у MarketEmulator при MatchOnTouch = false:
Как видно из представленного примера исполнение всегда проходит лучше цены заявки..
Действительно, была ошибка. Будет фикс.
Михаил, в версии 4.2.26.0 произведен фикс указанной выше проблемы. Замечательно!
Используя код:
при остановке стратегии результат во всех случаях прогона отличен от ноля. Что явно подтверждает, что проблема не была решена в полной мере!
Пункты уже приклеиваются, конечно, в гораздо меньше количестве сделок, но хотелось бы видеть полное их отсутствие.
Полное отсутствие - это нереально поведение.
Наверное, вы не совсем поняли первоначальную проблему. Была ошибка, что стоящая в стакане заявка исполняется по ценам, лучше чем ее цена. Это исправили. А то что вы пишите - это исправление поведения уже обратного случая - активной заявки (в стакан не ставится).
покажи лог с примером: выведи цены, best bid/ask, отдельно момент выставления заявки, как цена прошивает ордер и тут же цену исполнения.
Если эта ошибка существует, то ты только что убил всем пользователям продукта большинство интрадей стратегий, не говоря про HFT=) Хотя я сам все проверял, у меня было нормально. Единственный момент, когда цена исполнения может быть лучше, чем в лимином приказе - это когда например рынок идет наверх, ты ставишь лимитный приказ на продажу, и до того как он реально поставился на биржу, рынок проходит твой уровень и твой приказ исполняется как бы "по рынку", т.е. по текущим ценам. Такое случается live на сильных движениях, например