Идея коротко
Классический MACD считается в пунктах цены. Когда S&P 500 стоил 100, MACD двигался в пределах единиц. Когда индекс стоит 5000, те же движения дают десятки. Поэтому значение MACD нельзя сравнить ни с прошлым годом, ни с другим рынком, и у него нет общих уровней перекупленности.
MACD-V делит ту же разницу двух EMA на ATR. Индикатор становится безразмерным: он показывает, сколько «волатильностей» между быстрой и медленной средней. Значение 100 на золоте и на биткоине означает одно и то же. На этом строятся общие пороги: ±50 граница боковика, ±150 перегрев.
Почему это может работать
Сама нормализация эджа не даёт. Это более точный измерительный прибор. Польза в том, что правила поверх него можно один раз подобрать и проверить на десятках рынков и десятилетиях без подгонки порогов под каждый инструмент. Классический MACD так проверить нельзя: пороги в пунктах на одном рынке ничего не значат на другом.
Вторая мысль автора: в бычьем режиме глубокие отрицательные значения случаются редко. Если цена выше EMA 200, а MACD-V ушёл ниже −50, это откат внутри тренда, а не начало медвежьего рынка. Такие точки автор называет возможностью для покупки.
Правила
Индикатор (автор)
FastEMA = EMA(Close, 12)
SlowEMA = EMA(Close, 26)
ATR26 = ATR(26) // Уайлдер, как в видео
MACDV = (FastEMA - SlowEMA) / ATR26 * 100
Signal = EMA(MACDV, 9) // Finetiq: длина 9 по аналогии с MACD, для MACD-V в видео не названа
MACDVH = MACDV - Signal // гистограмма, крайние значения ±40 по автору
Зоны импульса (автор)
| MACD-V | Состояние |
|---|---|
| выше +150 | перегрев вверх: импульс больше 1.5 ATR |
| от +50 до +150 | сильный импульс вверх |
| от −50 до +50 | слабый импульс, боковик. Пересечения сигнальной линии здесь чаще ложные |
| от −150 до −50 | сильный импульс вниз |
| ниже −150 | перегрев вниз |
Вариант A. Покупка отката в бычьем режиме
Режим и зона отката от автора. Точки входа и выхода автор не дал, их задали мы.
BullRegime = Close > EMA(Close, 200)
// вход: импульс вернулся из зоны отката
IF BullRegime AND MACDV crosses above -50 // Finetiq: момент выхода из зоны −50…−150
BUY AT NEXT BAR OPEN
// защитный стоп
InitialStop = EntryPrice - 2 * ATR26 // Finetiq: стартовое значение
// выход, что наступит раньше
IF MACDV crosses above +50 THEN EXIT AT NEXT BAR OPEN // Finetiq: импульс восстановился
IF Close < EMA(Close, 200) THEN EXIT AT NEXT BAR OPEN // Finetiq: режим сломался
IF BarsSinceEntry >= 20 THEN EXIT AT NEXT BAR OPEN // Finetiq: выход по времени
Вариант B. Тестовая система автора на DAX
// дневные бары фьючерса DAX, только покупки
IF MACDV crosses above 70 // автор: «MACD-V выше 70»; Finetiq: берём момент пересечения
BUY AT NEXT BAR OPEN
SELL LIMIT EntryPrice * 1.0285 // автор: цель +2.85%
IF BarsSinceEntry >= 15 AND OpenProfit > 0 // автор: через 15 дней, если сделка в плюсе
EXIT AT NEXT BAR OPEN
IF BarsSinceEntry >= 77 // автор: максимальное удержание
EXIT AT NEXT BAR OPEN
// стоп-лосса в описании автора нет
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Быстрая EMA | 12 | автор |
| Медленная EMA | 26 | автор |
| ATR | 26, сглаживание Уайлдера | автор |
| Сигнальная линия | 9 | Finetiq |
| Граница боковика | ±50 | автор |
| Перегрев | ±150 | автор |
| Крайние значения гистограммы | ±40 | автор |
| Фильтр режима | дневная EMA 200 | автор |
| Вариант A: стоп | 2 × ATR26 | Finetiq |
| Вариант A: выход по времени | 20 баров | Finetiq |
| Вариант B: вход | MACD-V выше 70 | автор |
| Вариант B: цель | +2.85% | автор |
| Вариант B: выход по времени | 15 дней в плюсе, максимум 77 дней | автор |
Что проверить
- Даёт ли нормализация что-то сверх классики. Прогоните вариант A на MACD-V и на PPO (
(EMA12 − EMA26) / EMA26 × 100) с порогами, пересчитанными по той же доле значений. Если разницы нет, дело в правилах, а не в делении на ATR. - Заявление про ±150. Посчитайте долю дневных значений в диапазоне ±150 на своих рынках. Автор говорит о 95% на S&P 500, бунде и газе. Если на ваших инструментах доля сильно другая, общие пороги к ним не подходят.
- Один набор параметров на много рынков. Главное обещание индикатора. Возьмите 20–30 фьючерсов или CFD и прогоните вариант A без подстройки. Смотрите на медиану результатов по рынкам, а не на лучший.
- Окрестность порогов. Сдвиньте −50 на −30 и −70, EMA 200 на 150 и 250. Если результат резко меняется от небольшого сдвига, порог подогнан.
- Фильтр пересечений. Сравните сделки по пересечению сигнальной линии внутри зоны ±50 и вне её. Автор утверждает, что внутри ложных сигналов больше.
- Вариант B без стопа. Посмотрите на худшую просадку внутри сделки (MAE) и на сделки, которые висели все 77 дней. Процент попаданий в цель при таком выходе мало говорит о риске.
Особенности платформ
TradingView (Pine Script)
ta.atr(26)уже считается по Уайлдеру (черезta.rma), значения совпадут с формулой автора.- MACD-V в одну строку:
(ta.ema(close, 12) - ta.ema(close, 26)) / ta.atr(26) * 100. - Стратегия по умолчанию исполняет ордер на открытии следующего бара (
process_orders_on_close = false). Это совпадает с правилами выше. - Выход по времени:
bar_index - strategy.opentrades.entry_bar_index(0) >= 15. Цель:strategy.exit("TP", limit = strategy.position_avg_price * 1.0285).
MultiCharts и TradeStation (EasyLanguage)
- Встроенная функция
AvgTrueRange(26)это простое среднее TrueRange, а не сглаживание Уайлдера. Значения MACD-V получатся другими, особенно после всплесков волатильности. Считайте ATR сами:ATRw = ATRw[1] + (TrueRange - ATRw[1]) / 26. - EMA:
XAverage(Close, 12). - Вход по правилам:
Buy next bar at market. Цель лучше ставить ценой, а не деньгами:Sell next bar at EntryPrice * 1.0285 limit.SetProfitTargetзадаётся в валюте и легко даёт другой уровень. - Выход по времени:
If BarsSinceEntry >= 15 and OpenPositionProfit > 0 then Sell next bar at market.
MetaTrader 5 (MQL5)
- Встроенный
iATRтоже простое среднее TR, как в EasyLanguage. Для совпадения с автором считайте Уайлдера сами. - Основная линия
iMACD(буфер 0) это ровноEMA12 − EMA26, её можно делить на свой ATR. - Сигнал берите с закрытого бара (индекс 1) и проверяйте появление нового дневного бара, иначе советник будет входить на каждом тике.
- Дневной бар у CFD-брокера закрывается по серверному времени (обычно GMT+2/+3), а не по времени биржи. У брокеров с другим сервером бывают короткие воскресные бары, они искажают EMA и ATR. Сравните дневной график брокера с TradingView перед тестом.
Где идея может сломаться
- Все статистики по уровням и режимам взяты из видео и не проверены нами. Рынки в примерах автора: S&P 500, бунд, газ, DAX.
- Вариант A целиком наша формализация. Пороги входа, стоп и выход по времени это стартовые значения для проверки, а не рекомендация.
- В варианте B нет стоп-лосса. Высокий процент попаданий в цель при выходе «через 15 дней, если в плюсе» может скрывать редкие глубокие убытки.
- Цифры результатов DAX-системы в транскрипте частично неразборчивы. Мы привели только те, что прозвучали однозначно.
- EMA 200 на дневках требует истории: первые 200–250 баров индикатор ещё не устоялся, их нужно исключить из теста.