Блог им. uralpro

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

    • 21 апреля 2015, 10:19
    • |
    • uralpro
  • Еще

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 — здесь.

Другие стратегии, применяемые в алгоритмической торговле и биржевых роботах смотрите в моем блоге и на сайте.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
764 | ★29
15 комментариев
понятия «предсказание» или «предугадание» направления рынка — как-то не очень...
avatar
Маршал Денис, а вы как бы хотели — точное знание? Ну разве только инсайдер такую статью может написать-)
avatar
очередной квази программист, пищущий и продающий книжки.
Профессор Преображенский, вы это о ком?
avatar
uralpro, об авторе статье в оригинале.
Профессор Преображенский, я просто не нашел о нем подробных сведений, и о его книжках тоже не в курсе
avatar
uralpro, плохо искали
Профессор Преображенский, спасибо за сведения
avatar
Все верно — подгонять и оптимизировать можно даже сложные модели.
avatar
Отличная статья!
avatar
Это вам невася..))
avatar
кто-нибудь использует cnn сети в своей работе?
есть одна идейка сканера accumulation/distribution фаз по стокам и др инструментам
avatar
очень большая вероятность подгонки под историю.
5 параметров.
С тем же успехом можно написать любой алгоритм используя эти параметры и пустить его на оптимизацию. Результаты думаю будут не хуже.
avatar
Вопрос, а Секрет дал оценку роботу который получил бесплатно? Вроде тогда было обещание в комментариях…
avatar
Boris Rydichev, нет, пока ничего не слышно
avatar

Читайте на SMART-LAB:
Фото
27% годовых и ежемесячный купон: новый выпуск «МСК МОБАЙЛ»
29 октября на Московской бирже стартует размещение дебютного выпуска облигаций ООО «МСК МОБАЙЛ» серии БО-01. Организатором выступает...
Фото
Сталь дорожает впервые за пять: стоит ли покупать акции российских сталеваров?
Цены на сталь в Китае, которые служат ориентиром для мирового рынка, могут вырасти по итогам года впервые за пять лет. Однако этот рост во...
Фото
Банковский сектор сентябрь 2026 г. - рекордная прибыль, но рост все менее равномерный
Банки отчитались за сентябрь. Что интересного мы узнали?  За 12 месяцев прибыль сектора составляет уже 4,5 трлн руб. при прогнозе ЦБ 3,9–4,4...
Фото
Секьюритизированные облигации: интересна ли их повышенная доходность?
Секьюритизированные облигации при наивысших рейтингах (AAA), дают доходность выше, чем корпоративные бонды 1-го эшелона, что делает вложения в...

теги блога uralpro

....все тэги



UPDONW
Новый дизайн