Как провести бэктест-тест за определенные даты, например 2008 :: 2010 в Quanstrat? Я хочу загрузить символы из 2001 :: 2017, но я хочу провести обратный тест только для подмножества дат. (вместо того, чтобы перезагружать символы каждый раз для определенных диапазонов дат)
Тестирование на исторических данных за определенные даты в Quanstrat R
Ответы (1)
В quantstrat
нет встроенного способа сделать это. Фактически, в начале функций apply * есть комментарий, в котором говорится:
#TODO add Date subsetting
(патчи приветствуются)
Однако есть несколько возможных способов сделать это с помощью существующего кода.
Вероятно, самый простой способ - загрузить все ваши рыночные данные в среду, а затем добавить свои рыночные данные в .GlobalEnv перед каждым вызовом applyStrategy
.
Индикаторы и сигналы должны использовать векторизованные функции, и их применение ко всей серии должно занимать (не более) секунд. Так что проще всего, вероятно, запустить applyIndicators
и applySignals
вручную для всей серии, а затем вызвать applyRules
только с нужным подмножеством.
Вы также можете добавить сигнальную функцию, которая понимает подмножества. Эта сигнальная функция будет последней в спецификации стратегии и будет фильтровать все ваши сигналы до 0 за пределами предпочтительного диапазона дат.