Имеется ли возможность при тестировании на исторических данных заключать сделки по определенной цене? Как я понимаю, по умолчанию происходит генерация стаканов и мэтчинг заявок. Хочется ускорить процедуру тестирования, отказавшись от генерации стаканов (а в лучшем случае, еще и подгрузки сделок), совершая сделки, например, по цене открытия свечи, используя заранее сгенерированные свечи.
评论 (5)
登录 或 创建账户, 登录或注册以发表评论
Как понимаю основная проблема исторического тестирования все-же не геренрация стаканов а некий "мусор от прошлых сделок" Я ускорял тестирование засовывая в эмулятор по несколько стратегий и ограничивая время тестирования, (я говорю про быстрые стратегии). Для генерации сделок использовалось квотирование, и если перезапускать эмулятор раз в несколько часов то все происходило быстрее. При профайлинге эмулятора дот трейсом примерно 1/3 времени тратилась на слип и примерно 1/3 на вейт(в смысле синхронизацию). Из чего делаю вывод что что-то не так с ивентами в датском королевстве. поправьте меня если я не прав.
А что Вы имеете в виду под мусором прошлых сделок? Насколько я понимаю, если эмулятор вообще не будет подгружать исторические сделки, а будет получать лишь свечки (скажем, часовые), и заключать сделки для стратегии без генерации стаканов по произвольной цене (практическую осуществимость такой сделки можно оставить на совести разработчика), то тестирование должно по идее "летать".
Ну у нас с вами разное понялие "скорости" , меня вполне устраивает что маркет эмулятор стартует около 20 секунд и около 2-3х минут проходит день на реальных данных с глубиной стакана 50 на стратегии вида. с 16-22% загрузкой проца при шести ядрах.
public class PerfStrategy:Strategy { protected override void OnStarting() { Trader.MarketTimeChanged += new Action(Trader_MarketTimeChanged ); }
Но, если добавить в стратегию какое-либо исполнения сделок, скорость тестирования геометрически замедляется. Так что вопрос не в истории (ИМХО) З.Ы. Еще добавка, если добавить стратегии, тестирование замедляется далеко не арифметически.
Если стратегия на часвых свечках, то для тестирования нужен период как минимум несколько месяцев, и 2-3 минуты на день кажутся вечностью, тем более что ее нужно прогонять с различными параметрами. Кстати,Вы используете сохраненные стаканы или сгенерированные? Столкнулся с тем, что по сгенерированным стаканам сделки происходят по существенно лучшим ценам, чем когда бот на реале торгует.