Тестирование на исторических данных за определенные даты в Quanstrat R

Как провести бэктест-тест за определенные даты, например 2008 :: 2010 в Quanstrat? Я хочу загрузить символы из 2001 :: 2017, но я хочу провести обратный тест только для подмножества дат. (вместо того, чтобы перезагружать символы каждый раз для определенных диапазонов дат)


person GeV 126    schedule 04.05.2017    source источник


Ответы (1)


В quantstrat нет встроенного способа сделать это. Фактически, в начале функций apply * есть комментарий, в котором говорится:

#TODO add Date subsetting

(патчи приветствуются)

Однако есть несколько возможных способов сделать это с помощью существующего кода.

Вероятно, самый простой способ - загрузить все ваши рыночные данные в среду, а затем добавить свои рыночные данные в .GlobalEnv перед каждым вызовом applyStrategy.

Индикаторы и сигналы должны использовать векторизованные функции, и их применение ко всей серии должно занимать (не более) секунд. Так что проще всего, вероятно, запустить applyIndicators и applySignals вручную для всей серии, а затем вызвать applyRules только с нужным подмножеством.

Вы также можете добавить сигнальную функцию, которая понимает подмножества. Эта сигнальная функция будет последней в спецификации стратегии и будет фильтровать все ваши сигналы до 0 за пределами предпочтительного диапазона дат.

person Brian G. Peterson    schedule 10.05.2017
comment
Текущая версия кода на момент этого комментария добавляет аргумент rule_subset в applyRules, который будет применять правила только к периоду подмножества. - person Brian G. Peterson; 03.06.2017