Решил запустить свой бэктестинг на версии 4.2.2.16 с использованием RegisterMarketDepth и TrendMarketDepthGenerator. (Изначально написан на 4.2.2.6). Результат - PnL изменился в 3(!!!) раза: с 6000 пунктов на контракт (4.2.2.6) до 2100 (4.2.2.16)
Программа идентичная, отличие только в использовании RegisterMarketDepth и TrendMarketDepthGenerator и версиях S#:
- Тиковые данные
- 600 трейдов
- 1 контракт RIH4
- все сделки "по-рынку"
Ожидание - трейды будут иметь одинаковый timestamp, но во втором случае с включенными стаканами цена будет хуже как минимум на bid/ask spread (среднее около 11-14 на RIH4)
Выгрузил трейды, начал изучать:
- Timestamps на этих бэктестах не совпадают (!!!)
- Разница некоторых трейдов может быть несколько минут по времени! Сигналы на вход только от тиков, MD не должна влиять.
- Количество трейдов не совпадает
- Часто без стаканов трейды имеют хуже цену, чем со стаканами. Как это может быть если все сделки "по-рынку"
- Пропущенные трейды...
У меня одного такие чудеса?
P.S. Как уже писалось, состояние connector.IsFinished не наступает, память продолжает жраться после предполагаемого конца теста (когда пришли последние данные из хранилища)
评论 (1)
登录 或 创建账户, 登录或注册以发表评论
Собственно, заметил, что результаты с 4.2.2.6 нифига не комплементарны при использовании Renko. И таки да, IsFinished не наступает. Логи прилагаю. Так же обратил внимание, что у меня только 2 нити из 10-ти порождаются всегда при добавлении в баскеттрейдера и запуска отдельным таском. Хз почему, может, вопрос в длине свечи, но всё равно странно, с этим буду разбираться сам. Насчёт логов - смотрите в прикреплённом архиве.