Имеется ли возможность при тестировании на исторических данных заключать сделки по определенной цене? Как я понимаю, по умолчанию происходит генерация стаканов и мэтчинг заявок. Хочется ускорить процедуру тестирования, отказавшись от генерации стаканов (а в лучшем случае, еще и подгрузки сделок), совершая сделки, например, по цене открытия свечи, используя заранее сгенерированные свечи.
Комментарии (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 минуты на день кажутся вечностью, тем более что ее нужно прогонять с различными параметрами. Кстати,Вы используете сохраненные стаканы или сгенерированные? Столкнулся с тем, что по сгенерированным стаканам сделки происходят по существенно лучшим ценам, чем когда бот на реале торгует.