Блог им. 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 — здесь.

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

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

Читайте на SMART-LAB:
🏦 ЦБ: снижать ставку пока рано
Глава регулятора Эльвира Набиуллина выступила на совместном заседании профильных комитетов Госдумы. Там обсуждали основные направления ДКП на...
Фото
Число инвесторов RENI достигло 116 тысяч человек по итогам октября 2026 года
Получили свежий отчет Московской Биржи. В октябре нашими инвесторами являлись 116 тысяч человек. Хотя цифра с сентября снизилась на 1 тыс....
ИИ находит новые материалы в 12 раз быстрее человека
В Центре палладиевых технологий «Норникеля» искусственный интеллект за месяц оценивает до 10 000 возможных составов на основе палладия. Когда...
Фото
Облигации-флоатеры: можно ли продолжать держать в портфеле?
Флоатеры – облигации с плавающим купоном, которые показывают очень хорошие результаты при росте ставок, а также при паузе в снижении ключевой...

теги блога uralpro

....все тэги



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