Блог им. Mindspace

Когда не стоит использовать Rate-of-Change (ROC)?

Когда не стоит использовать Rate-of-Change (ROC)?
Для ребалансировки своих и клиентских портфелей я использую пересечение простых скользящих средних за 50 и 200 дней (SMA(50)/SMA(200). Поэтому мне было интересно узнать, как отрабатывает для этих целей индикатор, показывающий скорость изменения цены, Rate-of-Change (ROC).

Как оказалось, отрабатывает он не важно. Подтверждение тому — результаты тестов на Quantopian. Вот, что бы мы получили, используя Rate-of-Change за 200 дней — ROC(200) для ребалансировки портфеля.

Результаты тестов на Quantopian

В таблице ниже приведены результаты тестирования стратегий входа и выхода по пересечению SMA(50) и SMA(200), пересечению цены SMA(200), уходу значения ROC(200) и сглаженного smoothROC(200) ниже и выше нуля за период с 2004 по 2018 гг для капитала в $100 тыс.

Когда не стоит использовать Rate-of-Change (ROC)?

Если мы с вами заглянем в историю, то увидим, что с 2004 по 2018 гг S&P 500 (SPY) вырос на 230%, показав максимальную просадку (max drawdown) в 2008 году -55%. Как видно в таблице, рядом с этим показателем только доходность (return) стратегии пересечения SMA(50) и SMA(200). Обратите внимание, что используя данную стратегию в SPY, мы бы получили значительно меньшую просадку. Но при этом находились бы меньше в позиции (exposure), а значит, могли использовать высвободившийся капитал. (В этом преимущество данной стратегии по сравнению с консервативной «Купи и держи», подробнее здесь.)

При этом более скромный возврат мы бы получили от SMA(200). За 200-дневную среднюю часто идут бои между быками и медведями, и как результат цена вокруг нее резко скачет. Поэтому SMA(200) дает много ложных сигналов и не подходит как сигнал на выход и вход при ребалансировке портфеля. Однако ROC(200) отрабатывает еще хуже, чем SMA(200). Как видно, с ним мы в позиции были бы дольше (82,8%) и имели просадку аж 31,8%. При этом сглаженный smoothROC(200) аукнулся бы нам еще более глубокой просадкой. Кому интересно, формулы для расчета обычного и сглаженного ROC за 200 дней ниже.

Расчет и сигналы ROC(200)

ROC(200)=(\frac{close}{close[-200]}-1)*100

smooth ROC(200)=\frac{roc[-1]+roc[-2]*2+roc[-3]*2+roc[-4]}{6}

Если ROC(200) выше нуля — тренд бычий, если ниже — медвежий.

Что в итоге?

В итоге с помощью нехитрого теста мы убедились, что не стоит использовать ROC(200) в качестве фильтра для тренда. А для ребалансировки портфеля лучше всего (пока) подходит старое доброе пересечение средних SMA(50) и SMA(200). При желании вы можете провести данный тест сами. Тем более, что на Quantrum.me есть уже готовый код для Quantopian. Там же в качестве плюшки вы найдете код для расчета доходности и максимальной просадки активов. Enjoy!

Хотите сформировать портфель?

Хотите сформировать портфель, но не знаете, с чего начать? Почитайте материалы блога с тегом «портфель» — в них вы найдете все, что для этого нужно. Если вам некогда погружаться в детали, то приходите ко мне, я создам вам портфель и научу управлять им по стратегии пересечения средних.

Оксана Гафаити,
автор MindSpace.ru, инвестор и трейдер.

1 комментарий
Как видно, с ним мы в позиции были бы дольше (82,8%) и имели просадку аж 31,8%.
200 торговыйх дней — это очень консервативный подход.  Требовать почти годового даунтренда (ROC(C,200)<0) чтобы выйти из позиции нежелательно — получается очень долгое пересиживание коррекций и поздний выход.
avatar

теги блога Оксана Гафаити

....все тэги



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