
이 전략은 Momentum Trend이라고 불리며 MACD 지표와 부린 밴드 지표의 장점을 결합하여 트렌드 추적 전략을 구현한다. 이 전략은 MACD의 빠른 선과 느린 선을 사용하여 부린 밴드를 구성하며, 부린 밴드의 중간선은 MACD의 신호선이다. 가격이 부린 밴드를 돌파 할 때 부어보고, 가격이 부린 밴드를 돌파 할 때 더 많이 볼 것이다.
이 전략의 핵심 지표는 MACD와 브린 띠이다. 그 중 MACD 지표는 빠른 선, 느린 선 및 MACD 차원에서 구성된다. 빠른 선은 일반적으로 12 일 EMA를, 느린 선은 26 일 EMA를 취한다. 그들의 차이는 MACD 기둥이다. 이 전략은 빠른 선과 느린 선의 차이는 브린 띠의 기본 중선으로 사용하고, 중선 주위에서 상향과 하향을 설정하고, 브린 띠를 도출한다.
가격이 아래에서 위쪽으로 브린 띠 아래 경로를 돌파할 때 구매 신호를 생성하고; 가격이 위에서 아래로 브린 띠 경로를 돌파할 때 판매 신호를 생성한다. 교착과 역전 기회를 놓치는 가능성을 줄이기 위해, 이 전략은 궤도 돌파를 즉시 출전하지 않고, 가격 회전이 테스트된 브린 띠 중선을 다시 출전할 때까지 기다린다.
또한, 브린은 오프레일과 오프레일을 저항점과 지지점으로 사용할 수 있다. 가격이 상승할 때 오프레일은 저항이고 오프레일은 지원이다. 가격이 하락할 때 오프레일은 지원이고 오프레일은 저항이다.
이 전략은 MACD와 브린띠의 두 지표의 장점을 결합하여 트렌드 추적을 구현하며 다음과 같은 장점을 가지고 있습니다.
MACD는 강한 경향 판단 능력을 가지고 있으며, 브린은 자기 적응적 조정을 가지고 있으며, 둘의 조합은 경향 전환점을 효과적으로 판단할 수 있다.
회전 입장은 스톱 로즈 위험을 효과적으로 회피하고, 중장선 트렌드를 추적할 수 있다.
부린 벨트의 저항과 지지를 이용하면 더 많은 수익을 얻을 수 있다.
MACD와 브린 밴드 파라미터는 유연하게 조정될 수 있으며, 다양한 시장 환경에 적용된다.
이 전략에는 몇 가지 위험도 있습니다.
흔들리는 트렌드에서 MACD와 브린 벨트는 여러 번의 실패 신호가 발생할 수 있습니다. 이 경우 큰 손실을 피하기 위해 포지션 규모를 줄여야합니다.
회귀 시에는 손실을 방지하기 위해 스톱로스를 설정해야 합니다.
브린 밴드 매개 변수는 시장의 변동에 따라 조정되어야 하며, 매개 변수가 잘못 설정되면 허위 돌파의 확률이 증가한다.
좋은 리스크 관리와 포지션 통제는 이 전략이 지속적인 수익을 창출하는 데 핵심입니다. 단순한 전략 신호에 의존하면 전체적인 위험을 무시할 수 있습니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
MACD의 매개 변수를 최적화하여 8일 빠른 선과 20일 느린 선으로 변경하여 다양한 품종과 주기에 따라 조정하여 지표의 민감도를 높였습니다.
위아래 트렌드 판단을 높이고, 브린 대역 변수를 최적화하고, 흔들리는 시장의 가짜 신호율을 감소시킨다.
부린 띠의 상·하 궤도를 이용한 스톱 라인을 설정하여 위험을 통제하는 스톱 전략을 추가한다.
다른 지표 프레임워크와 함께 검증하여 전략의 안정성을 높여라.
MACD와 브린 띠에 기반한 Momentum Trend 전략은 지표 조합을 통해 중장선 트렌드를 추적하고, 리드 리커버팅으로 위험을 줄인다. 그것은 파라미터 설정을 최적화하고, 위험을 통제하며, 트렌드 품종에서 좋은 성능을 발휘한다. 그러나 어떤 전략도 완벽하지 않으며, 여러 측면에서 지속적으로 최적화하고 개선해야하며, 변화하는 시장 환경에 적응 할 수 있습니다.
/*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)