Блог им. Mindspace

Тестируем стратегию входа и выхода по тренду (плюс код на Python)

Тестируем стратегию входа и выхода по тренду (плюс код на Python)
В этом обзоре мы протестируем стратегию входа и выхода по тренду при торговле в лонг. В чем ее суть? В том, что мы открываем и держим длинную позицию, пока тренд в активе бычий, и закрываем ее при смене растущей тенденции. Для определения тренда и выбора моментов выхода и входа мы будем использовать два подхода.

Первый подход

Первый подход состоит в анализе положения цены относительно 200-дневной скользящей средней SMA(200), так как именно SMA(200) разделяет медвежий и бычий рынок. Принцип ее трактовки такой. Если цена актива движется над SMA(200), то тренд считается бычьим. И наоборот, если цена актива находится под SMА(200), то тренд считается медвежьим.

Второй подход

Второй подход заключается в отслеживании момента пересечения 200-дневной средней SMA(200) более быстрой 50-дневной средней SMA(50). Интерпретация здесь следующая. Когда SMA(50) пересекает SMА(200) снизу вверх и движется над ней, то тренд считается бычьим. И наоборот, если SMA(50) пересекает SMА(200) сверху вниз и движется под ней, то тренд считается медвежьим.

Ссылка по теме: Как за несколько минут определить тренд

Первый подход позволяет получить более ранний сигнал на открытие или закрытие позиции, но дает много ложных пробоев. Для того чтобы сократить число этих пробоев, мы будем проверять нахождение цены над (под) SMА(200) в течение определенного количества дней. Второй подход дает более надежный сигнал, но делает это с отставанием: пересечение SMA(50) и SMА(200) возникает значительно позже, чем изменение цены относительно SMА(200).

Мы проанализируем

Мы проанализируем оба подхода и посмотрим, что бы мы получили, если бы мы: 1) открывали (закрывали) длинные позиции по положению цены актива над (под) его 200-дневной средней SMA(200); 2) открывали (закрывали) длинные позиции по пересечению SMA(50) и SMА(200). Дополнительно мы сравним полученные результаты со стратегией «Купи и держи», по которой мы бы открывали позиции и держали их, не зависимо от тренда.

Тестировать стратегии будем:

  • на индексных ETF-ах: SPDR S&P 500 (SPY), Dow Jones Industrial Average (DIA), Nasdaq 100 (QQQ), iShares Russell 2000 (IWM);
  • на сайте Quantopian.com c помощью кода, написанного на Python (приведен в конце поста);
  • на исторических данных за период с 01.01.2004 по 02.08.2017 гг. (13 лет).

Результаты бэктеста

В таблице ниже приведена результативность стратегий для каждого актива. Об эффективности той или иной стратегии можно судить по таким метрикам как Return и Drawdown. Return — это доходность актива с учетом реинвестирования дивидендов, проскальзываний и брокерских комиссий на уровне Interactivebrokers.com. Drawdown — это мера риска актива, отражающая его максимальное снижение в цене. Дополнительно о рисках актива можно судить по коэффициентам Бета (Beta), Альфа (Alpha), Шарпа (Sharpe). Подробнее о них читайте здесь.

Тестируем стратегию входа и выхода по тренду (плюс код на Python)

Как видно, за анализируемый период (13 лет) в S&P 500 (SPY) и Dow Jones Industrial Average (DIA) лучше всего проявила себя стратегия входа и выхода SMA(200) 20 days. По ней мы покупаем актив, когда его цена была 20 дней выше SMA(200) и продаем, когда цена оставалась 20 дней ниже SMA(200). В свою очередь, если бы входили по стратегии «Купи и держи» (Buy & Hold), то получили бы максимальную просадку. При этом если бы открывались и закрывались по пересечению средних, то получили бы схожий с «Купи и держи» возврат, но с меньшим риском.

В Nasdaq 100 (QQQ) и iShares Russell 2000 (IWM) лучше всех отработала стратегия «Купи и держи». Причина этого в том, что данные фонды волатильней, чем SPY, и их цена может резко уходить под средние и также резко на них возвращаться. Если бы мы выбрали данный подход, то получили бы максимальный доход, но должны были терпеть падение цены на 53% и 60%. Сократить эти просадки нам бы позволила стратегия входа и выхода по SMA(200). При этом в случае с QQQ мы могли бы получить снижение риска при пропорционально меньшей потери в доходности.

В сухом остатке

Протестировав данные стратегии, мы обнаружили, что:

  • Стратегия входа и выхода по тренду позволяет значительно сократить риск. При чем на стабильных активах — без потери в доходности.
  • На волатильных активах данная стратегия может работать значительно хуже, чем пассивная «Купи и держи».
  • Стратегия «Купи и держи» может давать высокий доход, но сопряжена с максимально высоким риском.

Готовый код 

При желании вы можете взять мой код на Python, запустить его на Quantopian.com и протестировать данные стратегии. Вы можете внести изменения и проверить их на средних разных периодов и для разного количества дней. Кроме этого вы можете ускорить сигналы, заменив простые скользящие на экспоненциальные. Код подготовлен при поддержке Александра Румянцева, автора блога об алготорговле Quantrum.me. Скачать его можно на моем блоге здесь.

Если у вас есть вопросы, пишите их в комментариях, я вам отвечу. Также вы всегда можете обратиться ко мне за консультацией, пройти обучение и подписаться на рассылку моих торговых сделок.

Оксана Гафаити,
Первая русская женщина, торгующая Америку.
Автор Mindspace.ru и Trades.Mindspace.ru

Понравился пост? Поставьте лайк.
Хотите еще? Подпишитесь на обновления.
★5

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

....все тэги



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