Использование CART в предсказании направления рынка

tree

Интересный подход к предсказанию направления  рынка рассмотрен в статье "Using CART for Stock Market Forecasting". Для того, чтобы предугадать движение цены на недельном отрезке используется техника под названием CART (Classification And Regression Trees) - построение классификационного графа (дерева) с целью предсказать значение  целевой характеристики (цены) на основании набора объясняющих переменных. CART находит применение во многих областях науки и техники, но применим и в торговле, так как обладает набором свойств, хорошо подходящими для этой цели:

  • может применяться при любом типе статистического распределения
  • может применяться как для линейных, так и нелинейных зависимостей
  • устойчив к событиям, выходящим за рамки статистических распределений

Для построения дерева автор использует библиотеку языка R , вычисляющую рекурсивное разделение (Recursive Partitioning) rpart.

Исходные данные для тестирования алгоритма взяты следующие : цены наиболее ликвидных американских ETF с января 2000 до декабря 2013 года. Обучающий период (in-sample) - с 2000 по 2010 год, остальной период - проверочный (out-of-sample).

В качестве целевой переменной берется предсказание цены на 1 неделю, которая может принимать два состояния - ВВЕРХ, если цена за неделю выросла, и ВНИЗ, если цена за неделю упала.

В качестве объясняющих переменных взяты следующие показатели, принимающие только два значения:

  • Волатильность (VAR1). Высокая волатильность обычно свойственна падающим рынкам, низкая - растущим. Данная переменная основана на значении индикатора ATR в сравнении с его скользящей средней MA с периодом 20 дней. Если ATR>MA, VAR1=1, если ATR<MA, VAR1=-1.
  • Короткий ценовой импульс (VAR2). Здесь значение цены актива сравнивается с ее простой скользящей средней SMА с периодом 5 дней. Если цена>SMA, VAR2=1, иначе VAR2=-1.
  • Длинный ценовой импульс (VAR3). Для этой переменной период SMA берется равным 50 дням. Если цена>SMA, VAR3=1, иначе VAR3=-1.
  • Разворот (VAR4). В данном случае используется значение индикатора CRTDR (Close Relative To Daily Range), который вычисляется так: CRTDR=Close−Low/(High−Low), где Close — цена закрытия дня, High — максимальная цена дня, Low — минимальная цена дня. Если CRTDR>0.5, VAR4=1, иначе VAR4=-1.
  • Режим автокорелляции (VAR5). Рынку свойственны два режима автокорелляции приращений цены. В одном из них автокорелляция положительна, в другом отрицательна. Если автокорелляция приращений за последние 5 дней больше 0, то VAR5=1, иначе VAR5=-1.

В результате работы вышеуказанной программы на языке R автор получает множество деревьев CART, одно из которых показано на рисунке в заглавии поста. Проследим на нем путь к узлу 4 : VAR3>=0 (длинный ценовой импульс больше или равен 0) и VAR4>=0 (индикатор CRTDR>0.5). Красный четырехугольник в конце пути означает предсказание падения цены с вероятностью 58 % (1 - 0.42), или, другими словами, вероятность роста цены в следующую неделю равна 42%. 18% в четырехугольнике означает долю из обучающей выборки, предсказавшую данный исход.

Так как было получено много деревьев, автор составил из них "матрицу правил", сгруппировав ее по предсказаниям ВВЕРХ и ВНИЗ.  В связи с тем, что разные правила могли давать разные предсказания на одну и ту же точку (неделю), то была сформирована система баллов по такому принципу: когда правило давало предсказание ВВЕРХ, ему присваивался балл +1, если вниз, то -1, затем баллы складывались. Если в результате сумма была больше 0, то алгоритм входил в длинную позицию, если меньше 0 - в короткую, если равнялась 0 - оставался вне рынка.

В ходе тестирования были получены результаты по самым ликвидным ETF, отображенные на графике ниже, в сравнении с результатами стратегии купил-и-держи (красная линия):

etfOOSPerfАвтор счел такие показатели прибыльности весьма обнадеживающими и предложил способы улучшения качества алгоритма:

  • Оптимизация пути. Каждое ветвление в дереве является оптимальным, но оптимальность пути не гарантируется. Возможно придумать такую метрику, которая позволит оценить оптимальность всего пути и тем самым отобрать лучший.
  • Подобрать другие переменные. Выбор переменных основан на опыте автора, но это не означает, что нельзя найти другие параметры, улучшающие результат.
  • Попробовать другую методологию бэктестинга. Например, использовать не разделение выборок, а метод движущегося окна. 

P.S. Более подробные сведения о технике CART, можете найти здесь. О библиотеке языка R rpart - здесь.

 

Источник - www.quantalgos.ru

  • алгоритм
  • машинное обучение
  • CART
X

Похожие публикации

Комментарии (14)

Чтобы оставить комментарий, вам необходимо войти или зарегистрироваться
UP