Здравствуйте. У меня 2 вопроса по тестеру. API 4.2.2.27
Вопрос 1: Скажите, тестирование на истории на свечах через HistoryEmulationConnector подразумевает, что нужно обязательно генерировать и регистрировать стакан таким образом? Из примера SampleHistoryTesting:
connector.RegisterMarketDepth(new TrendMarketDepthGenerator(connector.GetSecurityId(security))
Потому что в этом примере тестирование просто "На свечках" без генерации стакана работает неправильно - сделки часто проходят по непонятным ценам вне диапазона свечей.
Вопрос 2: Берем тот же пример SampleHistoryTesting. Проводим тестирование на истории на свечах с генерацией стаканов. RIM4 таймфрейм 5 секунд. Свечи сгенерированы в гидре из тиковых финамовских данных, скачанных ею же. Тестирование с определенного момента начинает выдавать ошибки и дальше не работает. На таймфреймах от 1 минуты и выше все в норме.
2014/04/01 10:56:55.000|Debug |HistoryEmulationConnector|BP:MarketDataError,T=2014/04/01 10:57:00.000,Error=Объем заявки 0 задан не верно.
Имя параметра: message
Фактическое значение было 0.
2014/04/01 10:57:00.000|Error |HistoryEmulationConnector|System.ArgumentOutOfRangeException: Объем заявки 0 задан не верно.
Имя параметра: message
Фактическое значение было 0.
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=qbFl2u1tZpSoaeyRJryZurQ==(ExecutionMessage #=qRDfxRFPZsgnpE$EhJlNmBQ==, ICollection`1 #=qTDSqy72PaXe9_M9_RAlR6g==)
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=qpxzeUUEXP1acrXHj2HVaTg==(Message #=qhSs4ouD7GtYTof62FtdUhw==, ICollection`1 #=qbSMj8JoNCujQbZB7hWHuVg==)
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=qpxzeUUEXP1acrXHj2HVaTg==(Message #=qhSs4ouD7GtYTof62FtdUhw==, ICollection`1 #=qbSMj8JoNCujQbZB7hWHuVg==)
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=qDjrfsgdqGTHQmueXiiw3lnyKbw0i6JxsnMTCmCxJtFA=(Message #=qmRF$WttvLW6wg1yqEtOjMA==, ICollection`1 #=qNH8VCWinpuhwK1m3QOftkw==)
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=qLzr0XVCE3cg7F1D2Chw0EQ==(Message #=q_MM8y0u9ssdDKZCeUz0tSA==, ICollection`1 #=qoD0RJbPcCD952kDATXoukQ==)
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=qpxzeUUEXP1acrXHj2HVaTg==(Message #=qhSs4ouD7GtYTof62FtdUhw==, ICollection`1 #=qbSMj8JoNCujQbZB7hWHuVg==)
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=qpxzeUUEXP1acrXHj2HVaTg==(Message #=qhSs4ouD7GtYTof62FtdUhw==, ICollection`1 #=qbSMj8JoNCujQbZB7hWHuVg==)
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=qpxzeUUEXP1acrXHj2HVaTg==(Message #=qhSs4ouD7GtYTof62FtdUhw==, ICollection`1 #=qbSMj8JoNCujQbZB7hWHuVg==)
в StockSharp.Algo.Testing.MarketEmulator.#=qqiyOdS7pa1C1Euj27KpOOTJ6yPRTs1gAJJnEXL1LJGA=.#=q8eTsNwsUafa3d7KPwE8CaJaLGMhZlqCD$_LFpaapVTakRoK2cuM5Etf0ygrNrAT9zO5jd1YMGtVR0yjJT3ITgw==(Message #=qywaU0r7G0fCjLlUwJ2$cmA==)
в StockSharp.Algo.Testing.MarketEmulator.#=qAwDD2ai4NOPaT0G15edYLwPnAFOG9atzOSDUgzxHBIURPZhsbgU9el_eDqLiKUSTkfr_jQfTtfuAU5I1Lnn5Rw==(Message #=q3qgUO48qchl7XArvDTufMw==)
в StockSharp.Algo.Testing.EmulationMessageAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter`1.OnInMessageProcessor(Message message, IMessageAdapter adapter)
Дебаг лог до ошибки прилагается.
Комментарии (6)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Распишите про это подробнее.
Взят за основу пример SampleHistoryTesting. Добавил только вывод свечей и сделок на SciChart по завершении тестирования. Также добавил вывод Best Bid/Ask на момент завершения каждой свечи.
Иллюстрация тестирования "На свечках" (без генерации стакана) на скрине. Я отметил неправильные сделки. Почти все по бидам, но и по оферам бывает. Также обратите внимание на Bid/Ask по сравнению с диапазоном свечи и на спред. Собственно по этим ценам сделки и проходят.
Сделки берутся из strategy.MyTrades.
Свечи и стакан берутся так: (Насчет стакана не уверен, т.к. стакан по условию тестирования не регистрируется, а если регистрировать, но не генерировать, то картина существенно не меняется):
Дебаг лог прилагаю.
Кстати такое тестирование без генерации стакана не дает ошибок на маленькойм таймфрейме в 5 секунд, но сделки неправильные. А с генерацией стакана - ошибки. (Это к вопросу №2)
Тестирование идет на свечках или на стаканах? Первоначально вы писали про свечки. Теперь пишите про бид-аски.
В версии 4.2.3.0 обе проблемы сохранились.
Пока не смотрели на ваше описание. В релизе мы всегда указываем ссылки на те ошибки, что писали пользователи. Нет смысла поднимать топик, если ссылки на него нет в релизе.