← Назад

Цена исполнения при тестировании на истории

При переводе свечных стратегий с других систем (Ami, Wealthlab, старые версии S#) естественное желание выверить результаты системы - чтобы всё с точностью сопадало.

В свечных стратегиях обычно принято входить по цене клоуза свечи. В старой версии (3.2.7) я так и входил, сделки проходили по этой же цене.


void OnCandlesFinished
   ....

var order = this.CreateOrder(direction, candleList.Last().ClosePrice, volume);
base.RegisterOrder(order);

В версии 4.0.10 поведение изменилось, пытаюсь разобраться как именно. Свечи - TimeFrame. Для этого сравнил цену сделки из отчёта с ценой заявки (у меня ClosePrice) и Security.GetMarketPrice(direction) - как теперь входит SampleHistoryTesting.

Не совпадает ни с тем ни с другим.

Проковырявшись со сделками выяснил что цена входа равна цене второго Trade из следующей свечи. (видимо первый trade - был сигналом окончания для старой свечи и на следующем оно вошло)

Может быть имеет смысл это параметризировать для EmulationTrader чтобы он входил по цене Order (так как это было раньше)? Иначе как-то затруднительно выверять со сторонними системами - только по заявкам.

Комментарии (2)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Alexander
Alexander

Будет фикс

Garic
Garic Автор

О, супер! Т.е. теперь пуская заявку по маркету можно получить оценку проскальзывания.

Проверил - по сделкам - так и работает - кидаю Buy выше маркета на 20 лотов - оно аккуратно их по Trades матчит. Начиная со второго Trade следующей свечи (ну тут не принципиально) поскольку первый уже прошёл - он и спровоцировал CandleFinished для TimeFrameCandle.

Это очень полезно для детального тестирования, выбора более првильного входа или котирования и т.п.

Но еслиб тестер умел (опционально) проводить сделку по цене Order внезависимости от объёма - было бы полезно для выверки и предварительного тестирования.

Плюс тест наверное пошустрей работать будет - щас по сравнению с 3.2.7 получается примерно раза в два медленней (тест на минутках - стратегия без котирования - Open в 00 минут, Close в 30 минут).