RegisterMarketDepth и TrendMarketDepthGenerator
Решил запустить свой бэктестинг на версии 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 не наступает, память продолжает жраться после предполагаемого конца теста (когда пришли последние данные из хранилища)