MACD BB 브레이크아웃 전략 (MACD BB Breakout Strategy) 은 MACD 지표와 볼링거 밴드 (Bollinger Bands) 를 기반으로 하는 거래 전략이다. 이 전략은 시장의 과반 구매 및 과반 판매 영역을 결정하기 위해 볼링거 밴드를 사용하여 단기 시장 추세를 파악하기 위해 MACD 지표를 이용한다. MACD 지표가 상부 볼링거 밴드 (Bollinger Band) 이상으로 넘으면 전략은 긴 포지션에 진입한다. MACD 지표가 하부 볼링거 밴드 (Bollinger Band) 아래로 넘으면 전략은 짧은 포지션에 진입한다. 이 전략은 단기 시장 추세를 파악하고 트렌드 형성의 초기 단계에서 거래를 시작하는 것을 목표로 한다.
MACD BB 브레이크아웃 전략의 원칙은 다음과 같습니다.
MACD BB 브레이크아웃 전략은 트렌드 형성의 초기 단계에서 트레이드를 시작하기 위해 MACD 지표와 볼링거 밴드를 결합합니다. 전략의 강점은 단기 트렌드를 파악하고 가격 변동성을 고려하는 능력에 있습니다. 그러나 마감 위험, 빈번한 거래 및 매개 변수 최적화와 같은 과제에도 직면합니다. 트렌드 확인, 동적 스톱 로스 및 매개 변수 적응을 통해 전략의 견고성과 적응력을 더욱 향상시킬 수 있습니다.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //AK MACD BB strategy("AK MACD BB strategy", overlay = true) // Inputs for TP and SL tp_percent = input.float(1.0, title="Take Profit %") / 100 sl_percent = input.float(1.0, title="Stop Loss %") / 100 length = input.int(10, minval=1, title="BB Periods") dev = input.float(1, minval=0.0001, title="Deviations") //MACD fastLength = input.int(12, minval=1, title="fastLength") slowLength=input.int(26,minval=1) signalLength=input.int(9,minval=1) fastMA = ta.ema(close, fastLength) slowMA = ta.ema(close, slowLength) macd = fastMA - slowMA //BollingerBands Std = ta.stdev(macd, length) Upper = (Std * dev + (ta.sma(macd, length))) Lower = ((ta.sma(macd, length)) - (Std * dev)) Band1 = plot(Upper, color=color.gray, style=plot.style_line, linewidth=2,title="Upper Band") Band2 = plot(Lower, color=color.gray, style=plot.style_line, linewidth=2,title="lower Band") fill(Band1, Band2, color=color.blue, transp=75,title="Fill") mc = macd >= Upper ? color.lime:color.red // Indicator plot(macd, color=mc, style =plot.style_circles,linewidth = 3, title="macd") zeroline = 0 plot(zeroline,color= color.orange,linewidth= 2,title="Zeroline") //buy barcolor(macd >Upper ? color.yellow:na) //short barcolor(macd <Lower ? color.aqua:na) if macd > Upper strategy.entry("Long", strategy.long) // strategy.exit("Long TP/SL", "Long", limit=close * (1 + tp_percent), stop=close * (1 - sl_percent), comment = "Long Exit" ) if macd < Lower strategy.entry("Short", strategy.short) // strategy.exit("Short TP/SL", "Short", limit=close * (1 - tp_percent), stop=close * (1 + sl_percent), comment = "Short Exit")