Количественная стратегия разворота тренда дивергенции импульса на основе гистограммы MACD

MACD HISTOGRAM momentum Trend Reversal quantitative
Дата создания: 2025-02-21 09:25:50 Последнее изменение: 2025-02-21 09:25:50
Копировать: 2 Количество просмотров: 379
2
Подписаться
319
Подписчики

Количественная стратегия разворота тренда дивергенции импульса на основе гистограммы MACD Количественная стратегия разворота тренда дивергенции импульса на основе гистограммы MACD

Обзор

Стратегия представляет собой систему обратной торговли, основанную на отклонении от динамики MACD-полюсов. Она улавливает рыночные обратные сигналы, анализируя взаимосвязь между изменениями K-линейной формы и изменениями динамики MACD-полюсов.

Стратегический принцип

Торговая логика стратегии делится на два направления: дискортирование и плюссирование: Условия погашения: при появлении более крупной солнечной линии ((цены закрытия выше цены открытия), и ее сущность больше, чем предыдущая линия K, в то время как MACD-постная диаграмма в течение 3 последовательных циклов демонстрирует тенденцию к снижению, показывающую, что верхние колебания ослабевают, система посылает сигнал погашения. При условии, что существует большая черная линия (закрытие цены ниже, чем открытие цены), и ее сущность больше, чем предыдущая K-линия, а MACD столбиковой график в течение 3 последовательных циклов показывает восходящую тенденцию, показывает, что падение может ослабевать, система выпускает многосигналы. Управление позицией использует механизм устранения позиции по сигналу оппонента, то есть при появлении торгового сигнала в противоположном направлении, устраняется текущая позиция. Стратегия не устанавливает стоп-лосс и стоп-стоп, полностью полагается на сигнал для управления позицией.

Стратегические преимущества

  1. Ясность сигнала: стратегия учитывает одновременно формы K-линий и технические показатели, обеспечивая более надежный торговый сигнал.
  2. Обратная ловля: заранее выявление рыночных поворотных точек путем мониторинга динамических изменений.
  3. Контролируемый риск: использование механизма плавления сигналов соперников, чтобы избежать продолжения невыгодных позиций при смене тренда.
  4. Простая работа: правила торговли ясны, легко выполняются и отслеживаются.
  5. Адаптируемость: стратегия может быть применена в разных рынках и временных периодах.

Стратегический риск

  1. Риск ложного прорыва: рынок может иметь ложный прорыв, что приведет к ошибочным сигналам.
  2. Риск колебания рынка: Частые смены тренда могут привести к последовательным остановкам на рынке.
  3. Риск скольжения: крупные сделки могут иметь значительные скольжения при недостаточной ликвидности.
  4. Риск чрезмерной торговли: Сигналы являются более частыми, что может привести к более высоким затратам на торговлю.
  5. Зависимость от рыночных условий: стратегия хорошо работает в трендовых рынках, но может не работать в других рыночных условиях.

Направление оптимизации стратегии

  1. Введение фильтра тренда: добавление показателей, определяющих тренд, таких как система равновесия, для фильтрации ложных сигналов в рыночных колебаниях.
  2. Оптимизация механизма остановки убытков: установление разумного места остановки убытков, контроль за индивидуальными рисками.
  3. Совершенствование механизма сдерживания: прибыль на конечных позициях в зависимости от динамики волатильности рынка.
  4. Добавление условий фильтрации сделок: например, подтверждение количества сделок, фильтрация частоты колебаний и т. д., улучшение качества сигнала.
  5. Оптимизация управления позициями: внедрение механизма динамического управления позициями, корректировка пропорций позиций в зависимости от рыночных условий.

Подвести итог

Стратегия, использующая комбинацию K-линейной формы и MACD-полюса для захвата рыночных поворотных возможностей, отличается простотой управления и четкостью сигналов. Несмотря на наличие определенных рисков, благодаря разумным оптимизационным и управляющим рисками мерам можно значительно повысить стабильность и прибыльность стратегии. Стратегия особенно подходит для рыночной среды с явной тенденцией и может быть важной частью торговой системы.

Исходный код стратегии
/*backtest
start: 2024-11-10 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("MACD Momentum Reversal Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === MACD Calculation ===
fastLength   = input.int(12, "MACD Fast Length")
slowLength   = input.int(26, "MACD Slow Length")
signalLength = input.int(9, "MACD Signal Length")
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)

// === Candle Properties ===
bodySize      = math.abs(close - open)
prevBodySize  = math.abs(close[1] - open[1])
candleBigger  = bodySize > prevBodySize

bullishCandle = close > open
bearishCandle = close < open

// === MACD Momentum Conditions ===
// For bullish candles: if the MACD histogram (normally positive) is decreasing over the last 3 bars,
// then the bullish momentum is fading – a potential short signal.
macdLossBullish = (histLine[2] > histLine[1]) and (histLine[1] > histLine[0])

// For bearish candles: if the MACD histogram (normally negative) is increasing (moving closer to zero)
// over the last 3 bars, then the bearish momentum is fading – a potential long signal.
macdLossBearish = (histLine[2] < histLine[1]) and (histLine[1] < histLine[0])

// === Entry Conditions ===
// Short entry: Occurs when the current candle is bullish and larger than the previous candle,
// while the MACD histogram shows fading bullish momentum.
enterShort = bullishCandle and candleBigger and macdLossBullish

// Long entry: Occurs when the current candle is bearish and larger than the previous candle,
// while the MACD histogram shows fading bearish momentum.
enterLong  = bearishCandle and candleBigger and macdLossBearish

// === Plot the MACD Histogram for Reference ===
plot(histLine, title="MACD Histogram", color=color.blue, style=plot.style_histogram)

// === Strategy Execution ===
// Enter positions based on conditions. There is no stop loss or take profit defined;
// positions remain open until an opposite signal occurs.
if (enterShort)
    strategy.entry("Short", strategy.short)

if (enterLong)
    strategy.entry("Long", strategy.long)

// Exit conditions: close an existing position when the opposite signal appears.
if (strategy.position_size > 0 and enterShort)
    strategy.close("Long")

if (strategy.position_size < 0 and enterLong)
    strategy.close("Short")