Проведение сделок по определенной цене
Atom Ответить
02.11.2011


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



Спасибо:




5 Ответов
Char

Фотография
Дата: 02.11.2011
Ответить


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

InsiderHSE

Фотография
Дата: 02.11.2011
Ответить


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


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

Char

Фотография
Дата: 02.11.2011
Ответить


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

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

InsiderHSE

Фотография
Дата: 02.11.2011
Ответить


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 02.11.2011
Ответить


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


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy