Проведение сделок по определенной цене


Проведение сделок по определенной цене
Atom Reply
11/2/2011


Имеется ли возможность при тестировании на исторических данных заключать сделки по определенной цене? Как я понимаю, по умолчанию происходит генерация стаканов и мэтчинг заявок. Хочется ускорить процедуру тестирования, отказавшись от генерации стаканов (а в лучшем случае, еще и подгрузки сделок), совершая сделки, например, по цене открытия свечи, используя заранее сгенерированные свечи.



Thanks:




5 Answers
Char

Avatar
Date: 11/2/2011
Reply


Как понимаю основная проблема исторического тестирования все-же не геренрация стаканов а некий "мусор от прошлых сделок"
Я ускорял тестирование засовывая в эмулятор по несколько стратегий и ограничивая время тестирования, (я говорю про быстрые стратегии).
Для генерации сделок использовалось квотирование, и если перезапускать эмулятор раз в несколько часов то все происходило быстрее.
При профайлинге эмулятора дот трейсом примерно 1/3 времени тратилась на слип и примерно 1/3 на вейт(в смысле синхронизацию).
Из чего делаю вывод что что-то не так с ивентами в датском королевстве. поправьте меня если я не прав.
Thanks:

InsiderHSE

Avatar
Date: 11/2/2011
Reply


Char Перейти
Как понимаю основная проблема исторического тестирования все-же не геренрация стаканов а некий "мусор от прошлых сделок"
Я ускорял тестирование засовывая в эмулятор по несколько стратегий и ограничивая время тестирования, (я говорю про быстрые стратегии).
Для генерации сделок использовалось квотирование, и если перезапускать эмулятор раз в несколько часов то все происходило быстрее.
При профайлинге эмулятора дот трейсом примерно 1/3 времени тратилась на слип и примерно 1/3 на вейт(в смысле синхронизацию).
Из чего делаю вывод что что-то не так с ивентами в датском королевстве. поправьте меня если я не прав.


А что Вы имеете в виду под мусором прошлых сделок? Насколько я понимаю, если эмулятор вообще не будет подгружать исторические сделки, а будет получать лишь свечки (скажем, часовые), и заключать сделки для стратегии без генерации стаканов по произвольной цене (практическую осуществимость такой сделки можно оставить на совести разработчика), то тестирование должно по идее "летать".
Topic starter
Thanks:

Char

Avatar
Date: 11/2/2011
Reply


Ну у нас с вами разное понялие "скорости" , меня вполне устраивает что маркет эмулятор стартует около 20 секунд и около 2-3х минут проходит день на реальных данных с глубиной стакана 50 на стратегии вида. с 16-22% загрузкой проца при шести ядрах.

Но, если добавить в стратегию какое-либо исполнения сделок, скорость тестирования геометрически замедляется.
Так что вопрос не в истории (ИМХО)
З.Ы. Еще добавка, если добавить стратегии, тестирование замедляется далеко не арифметически.
Thanks:

InsiderHSE

Avatar
Date: 11/2/2011
Reply


Если стратегия на часвых свечках, то для тестирования нужен период как минимум несколько месяцев, и 2-3 минуты на день кажутся вечностью, тем более что ее нужно прогонять с различными параметрами. Кстати,Вы используете сохраненные стаканы или сгенерированные? Столкнулся с тем, что по сгенерированным стаканам сделки происходят по существенно лучшим ценам, чем когда бот на реале торгует.
Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 11/2/2011
Reply


InsiderHSE Перейти
Имеется ли возможность при тестировании на исторических данных заключать сделки по определенной цене? Как я понимаю, по умолчанию происходит генерация стаканов и мэтчинг заявок. Хочется ускорить процедуру тестирования, отказавшись от генерации стаканов (а в лучшем случае, еще и подгрузки сделок), совершая сделки, например, по цене открытия свечи, используя заранее сгенерированные свечи.


1. Сохраните свечки как сделки через Storage API (цена закрытие == цене сделки). Естественно, отдельная папка, чтобы не перетереть настоящие сделки.
2. Сделайте генерацию стакана с глубиной 1.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy