Стратегия
Возврат к среднему: стратегия для бокового рынка
# Возврат к среднему: стратегия, которая зарабатывает на боковом рынке
**Тип:** Обзор стратегии
**Уровень:** Начинающий
**Неделя:** 2
---
Когда акция резко падает, первый инстинкт — испугаться. Второй — спросить себя: «А не слишком ли сильно упало?» Именно этот вопрос лежит в основе одной из самых интересных торговых стратегий — **возврата к среднему** (Mean Reversion).
Сегодня разбираем её честно: как работает, где зарабатывает, где проигрывает — и в чём её принципиальное отличие от SMA-кроссовера из прошлой недели.
---
## Идея: «То, что сильно упало — часто отскакивает»
Представьте, что цена акции — это мяч на резинке. Вы можете оттянуть мяч вниз, но резинка стремится вернуть его в исходное положение. Чем сильнее оттянули — тем мощнее отскок.
В трейдинге эту роль «резинки» играет **среднее значение цены**. Если акция сильно отклонилась от своего исторического среднего — вверх или вниз — стратегия возврата к среднему делает ставку на то, что цена вернётся обратно.
Это не магия. Это статистика. Большинство ценовых движений — временный шум, а не постоянный сдвиг. На спокойных, боковых рынках цена действительно ходит вокруг некоего среднего уровня.
---
## Математическая основа: z-score — «мерило удалённости»
Чтобы понять, насколько сильно цена отклонилась, используют **z-score**. Не пугайтесь слова — идея простая.
**Z-score** показывает, на сколько стандартных отклонений текущая цена ушла от среднего:
```
z = (текущая цена − среднее за N дней) / стандартное отклонение за N дней
```
Пример:
- Среднее за 20 дней: 100 руб.
- Стандартное отклонение: 5 руб.
- Текущая цена: 88 руб.
- Z-score = (88 − 100) / 5 = **−2.4**
Что это значит? Акция упала на **2.4 стандартных отклонения** ниже своего среднего. Это нетипично. Статистически такое случается редко — и часто предшествует возврату вверх.
**Правила стратегии:**
| Сигнал | Условие | Действие |
|--------|---------|----------|
| Покупка | Z-score < −2 (цена аномально низкая) | Покупаем |
| Продажа | Z-score > 0 (цена вернулась к среднему) | Продаём |
| Шорт (опционально) | Z-score > +2 (цена аномально высокая) | Шортим |
---
## Когда работает — и когда нет
Честность важнее красивых обещаний. Вот правда о стратегии:
### Работает хорошо:
- **Боковые рынки (флет)** — цена ходит вперёд-назад вокруг среднего. Именно в такие периоды стратегия зарабатывает
- **Стабильные голубые фишки** — акции с предсказуемым диапазоном цен: Сбербанк, Лукойл, Газпром
- **Спокойные торговые дни** — низкая волатильность, нет сильных внешних шоков
### Работает плохо — и это важно знать:
- **Трендовые рынки** — если акция стабильно падает, покупка «потому что сильно упало» — это ловля падающего ножа. Каждый новый минимум будет ещё ниже
- **Новостные события** — отчёты, санкции, резкие изменения в бизнесе. Цена может «уйти» на новый уровень навсегда
- **Кризисные периоды** — в 2008-м, 2020-м и 2022-м многие «сильно упавшие» акции падали ещё в несколько раз
> **Главный риск:** Стратегия предполагает, что аномалия — временная. Но иногда «аномалия» — это новая реальность.
---
## Сравнение с SMA-кроссовером: противоположные философии
Помните SMA-кроссовер из первой недели? Посмотрите на принципиальное различие:
| | SMA-кроссовер | Возврат к среднему |
|---|---|---|
| **Философия** | Торгуем по тренду | Торгуем против тренда |
| **Когда покупаем** | Когда цена **растёт** (моментум вверх) | Когда цена **падает** (аномальное снижение) |
| **Лучшая среда** | Трендовый рынок | Боковой рынок |
| **Худшая среда** | Боковой рынок (пилы, ложные сигналы) | Трендовый рынок (покупаем падающий нож) |
| **Логика входа** | «Рынок показал силу — присоединяюсь» | «Рынок перестарался — жду возврата» |
Это не значит, что одна лучше другой. Это значит, что **они зарабатывают в разных условиях**. Опытные трейдеры умеют переключаться между стратегиями в зависимости от режима рынка.
Упрощённо: если ADX > 25 — рынок в тренде, используйте SMA. Если ADX < 20 — рынок в боковике, возврат к среднему уместнее.
---
## Код: расчёт z-score и сигналов
Ниже — базовая логика стратегии на Python. Она использует те же данные, что и наш SMA-бэктест:
```python
import pandas as pd
import yfinance as yf
# Параметры
TICKER = "SBER.ME" # Сбербанк на MOEX
START = "2022-01-01"
END = "2024-01-01"
WINDOW = 20 # окно для среднего и стандартного отклонения
Z_ENTRY = -2.0 # покупаем при z < -2
Z_EXIT = 0.0 # продаём при z > 0
# Загрузка данных
df = yf.download(TICKER, start=START, end=END, auto_adjust=True, progress=False)[["Close"]]
# Расчёт z-score
df["Mean"] = df["Close"].rolling(WINDOW).mean()
df["Std"] = df["Close"].rolling(WINDOW).std()
df["Z"] = (df["Close"] - df["Mean"]) / df["Std"]
df.dropna(inplace=True)
# Сигналы
df["Signal"] = 0
in_position = False
for i in range(len(df)):
z = df["Z"].iloc[i]
if not in_position and z < Z_ENTRY:
df.iloc[i, df.columns.get_loc("Signal")] = 1 # покупка
in_position = True
elif in_position and z > Z_EXIT:
df.iloc[i, df.columns.get_loc("Signal")] = -1 # продажа
in_position = False
buys = df[df["Signal"] == 1]
sells = df[df["Signal"] == -1]
print(f"Сигналов на покупку: {len(buys)}")
print(f"Сигналов на продажу: {len(sells)}")
print(df[["Close", "Z", "Signal"]].tail(10))
```
Этот код — стартовая точка для экспериментов. Для полноценного бэктеста с кривой капитала возьмите за основу [код SMA-бэктеста](../../code-examples/backtesting/sma_crossover_backtest.py) и замените логику сигналов.
---
## 3 идеи для улучшения
Базовая версия — честная, но упрощённая. Вот как думают о развитии стратегии дальше:
### Идея 1: Парный трейдинг (пары акций)
Вместо одной акции — торгуем **спред между двумя коррелированными акциями** (например, Сбербанк и ВТБ). Когда спред аномально расширяется — покупаем «отставшую» и шортим «убежавшую».
Преимущество: мы торгуем относительное движение, а не абсолютное. Даже если весь рынок падает — стратегия может зарабатывать, если одна акция падает меньше другой.
### Идея 2: Рыночно-нейтральный подход
Если портфель содержит одинаковое количество длинных и коротких позиций по рублёвому объёму — он нейтрален к общим движениям рынка. Зарабатываем только на «аномалиях», независимо от того, растёт рынок или падает.
### Идея 3: Адаптивный порог входа
Вместо фиксированного z < −2 — использовать **динамический порог**, который адаптируется к текущей волатильности инструмента. В спокойные периоды z = −1.5 уже может быть аномалией. В кризис z = −3 может быть нормой.
---
## Ключевые выводы
- Возврат к среднему — стратегия для **бокового рынка**, а не для тренда
- Математический инструмент — **z-score**: чем дальше цена от среднего, тем сильнее сигнал
- Главный риск — **принять тренд за аномалию**: то, что «сильно упало», может упасть ещё
- Это **противоположная философия** к SMA-кроссоверу: один торгует по тренду, другой — против него
- Усложнение через **пары и нейтральность** делает стратегию более устойчивой
---
## Попробуй сам — без риска
Теория — хороший старт. Но по-настоящему стратегия понимается через практику.
На **AreNaGo** вы можете:
- Загрузить стратегию возврата к среднему в **Генератор торговых стратегий**
- Запустить бэктест на реальных данных **MOEX** — Сбербанк, Газпром, Лукойл
- Сравнить результаты с SMA-кроссовером на одних и тех же данных
- Поучаствовать в **торговых соревнованиях** и проверить стратегию против других участников
Попробуйте эту стратегию прямо сейчас на [arenago.ru](https://arenago.ru)
---
*Пример для обучения. Прошлая доходность не гарантирует будущую. Не является инвестиционной рекомендацией.*
*AlgoTrading Technologies*
0
20
0
Пока нет комментариев. Будьте первым!