В процессе загрузки ресурсов... загрузка...

Стратегия импульсного тренда на основе MACD и полос Боллинджера

Автор:Чао Чжан, Дата: 2024-02-29 13:49:03
Тэги:

img

Обзор

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

Принцип стратегии

Основными показателями этой стратегии являются MACD и Bollinger Bands. Индикатор MACD состоит из быстрой линии, медленной линии и гистограммы MACD. Быстрая линия обычно является 12-дневной EMA, а медленная линия - 26-дневной EMA. Разница между ними - гистограмма MACD. Эта стратегия использует разницу между быстрой линией и медленной линией в качестве базовой средней линии Bollinger Bands. Верхние и нижние рельсы устанавливаются вокруг средней линии для построения Bollinger Bands.

Сигнал покупки генерируется, когда цена проходит через нижнюю рельсу полос Боллинджера вверх. Сигнал продажи генерируется, когда цена проходит через верхнюю рельсу полос Боллинджера вниз. Чтобы уменьшить риск попадания в ловушку и упущенных возможностей для обратного движения, эта стратегия не входит на рынок сразу после прорыва.

Кроме того, верхние и нижние рельсы также могут использоваться как сопротивление и поддержка соответственно. Когда цена растет, верхний рельс является сопротивлением, а нижний рельс - поддержкой. Когда цена падает, верхний рельс становится поддержкой, а нижний рельс становится сопротивлением.

Анализ преимуществ

Эта стратегия объединяет в себе преимущества MACD и полос Боллинджера для отслеживания трендов, с следующими преимуществами:

  1. MACD обладает сильной способностью оценивать тренд. Полосы Боллинджера могут адаптивно корректироваться. Комбинация может эффективно определять точки переворота тренда.

  2. Вступление в регресс может эффективно избежать риска остановки потерь и отслеживать среднесрочные и долгосрочные тенденции.

  3. Использование сопротивления и поддержки на полосах Боллинджера может еще больше зафиксировать прибыль.

  4. Параметры MACD и Bollinger Bands могут быть гибко скорректированы в соответствии с различными условиями рынка.

Анализ рисков

Для этой стратегии также существуют некоторые риски:

  1. При колебании трендов MACD и полосы Боллинджера могут генерировать несколько недействительных сигналов.

  2. Стоп-лосс должен устанавливаться во время входа в регресс, чтобы избежать увеличения потерь от чрезмерного регресса.

  3. Неправильное установление параметров увеличивает вероятность ложного прорыва.

  4. Хорошее управление рисками и размещение позиций являются ключом к поддержанию прибыли для этой стратегии.

Руководство по оптимизации

Стратегия также может быть оптимизирована в следующих аспектах:

  1. Оптимизировать параметры MACD на 8-дневную быструю линию и 20-дневную медленную линию.

  2. Добавьте восходящее и нисходящее суждение о тренде для оптимизации параметров полос Боллинджера, уменьшая ложные сигналы на колеблющихся рынках.

  3. Добавьте стратегию стоп-лосса. Установите линию стоп-лосса с верхними и нижними рельсами полос Боллинджера для контроля рисков.

  4. Включить другие индикаторы для проверки для повышения стабильности стратегии.

Заключение

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


/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Simple strategy based on MACD and Bollinger Bands, where BBs are calculatend from macd signal.
strategy("Strategy MACD vs BB", overlay=false)

fast_length = input(title="Fast MA period", type=input.integer, defval=8)
slow_length = input(title="Slow MA period", type=input.integer, defval=21)
src = input(close,"Source")


// ----------MA calculation - ChartArt-------------
smoothinput = input(1, minval=1, maxval=4, title='Moving Average Calculation: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)')

fast_ma = smoothinput == 1 ? sma(src, fast_length):smoothinput == 2 ? ema(src, fast_length):smoothinput == 3 ? wma(src, fast_length):smoothinput == 4 ? linreg(src, fast_length,0):na
slow_ma = smoothinput == 1 ? sma(src, slow_length):smoothinput == 2 ? ema(src, slow_length):smoothinput == 3 ? wma(src, slow_length):smoothinput == 4 ? linreg(src, slow_length,0):na
//----------------------------------------------
macd = fast_ma - slow_ma
p1=plot(macd,"macd signal",color=color.blue)
length = input(40, minval=1)
mult = input(2.0,"BB multiplier")

basis = sma(macd, length)
dev = mult * stdev(macd, length)
plot(basis,"BB basis",color=color.orange)
upper = basis + dev
lower = basis - dev
p2=plot(upper,"BB upper",color=color.red)
p3=plot(lower,"BB basis",color=color.green)

longCondition = crossover(macd, lower)
shortCondition = crossunder(macd, upper)

plotshape(longCondition?lower:na, title="Long", style=shape.xcross, location=location.absolute, text="Long", color=color.green, transp=0, size=size.tiny)
plotshape(shortCondition?upper:na, title="Short", style=shape.xcross, location=location.absolute, text="Short", color=color.red, transp=0, size=size.tiny)
fill(p1,p3,color=macd<lower?color.green:na,transp=90,title="support")
fill(p1,p2,color=macd>upper?color.red:na,transp=90,title="resistance")

if longCondition
    strategy.entry("Long",strategy.long)
if shortCondition
    strategy.entry("Short",strategy.short)


Больше