MACD BB 브레이크업 전략

저자:차오장, 날짜: 2024-04-25 17:16:28
태그:MACDEMABBSMA

img

전반적인 설명

MACD BB 브레이크아웃 전략 (MACD BB Breakout Strategy) 은 MACD 지표와 볼링거 밴드 (Bollinger Bands) 를 기반으로 하는 거래 전략이다. 이 전략은 시장의 과반 구매 및 과반 판매 영역을 결정하기 위해 볼링거 밴드를 사용하여 단기 시장 추세를 파악하기 위해 MACD 지표를 이용한다. MACD 지표가 상부 볼링거 밴드 (Bollinger Band) 이상으로 넘으면 전략은 긴 포지션에 진입한다. MACD 지표가 하부 볼링거 밴드 (Bollinger Band) 아래로 넘으면 전략은 짧은 포지션에 진입한다. 이 전략은 단기 시장 추세를 파악하고 트렌드 형성의 초기 단계에서 거래를 시작하는 것을 목표로 한다.

전략 원칙

MACD BB 브레이크아웃 전략의 원칙은 다음과 같습니다.

  1. MACD 지표를 계산합니다. MACD 지표를 계산하기 위해 빠른 기하급수적 이동 평균 (EMA) 과 느린 EMA를 사용합니다.
  2. 볼링거 밴드 계산: MACD 지표의 단순 이동 평균 (SMA) 및 표준편차를 사용하여 상부 및 하부 볼링거 밴드를 계산하십시오.
  3. 긴 신호: MACD 지표가 상부 볼링거 밴드를 넘으면 전략은 긴 지점에 진입합니다.
  4. 짧은 신호: MACD 지표가 아래 볼링거 밴드 아래로 넘어가면 전략은 짧은 지점에 진입합니다.
  5. 이윤을 취하고 손실을 중지하십시오: 전략은 거래 위험을 관리하기 위해 이윤을 취하고 손실을 중지 할 수 있습니다.

전략적 장점

  1. 트렌드 캡처: MACD 지표는 단기 시장 트렌드를 효과적으로 캡처 할 수 있으며, 트렌드 형성의 초기 단계에서 전략을 시작할 수 있습니다.
  2. 변동성 고려: 볼링거 밴드는 가격 변동성을 고려하여 시장 변동성이 증가하는 동안 잘못된 거래 신호를 피하는 전략을 돕습니다.
  3. 매개 변수 유연성: MACD 빠른 기간과 느린 기간, 볼링거 밴드 기간 및 표준편차 곱셈자와 같은 전략의 매개 변수는 시장 특성에 따라 최적화 및 조정 할 수 있습니다.

전략 위험

  1. 마감 위험: 전략은 트렌드 형성의 초기 단계에서 거래에 참여하여 상당한 마감 위험에 노출 될 수 있습니다.
  2. 빈번한 거래: 매개 변수가 제대로 설정되지 않으면 전략은 과도한 거래 신호를 생성하여 빈번한 거래와 높은 거래 비용을 초래할 수 있습니다.
  3. 매개 변수 최적화: 전략의 성능은 매개 변수 선택에 달려 있으며, 부적절한 매개 변수는 저성능으로 이어질 수 있습니다.

전략 최적화 방향

  1. 트렌드 확인: 거래 신호를 생성 한 후, 일부 잘못된 신호를 필터링하여 트렌드의 타당성을 확인하기 위해 추가 지표 또는 가격 액션을 사용할 수 있습니다.
  2. 동적 스톱 로스: 시장 변동성이나 가격 움직임에 따라 동적으로 스톱 로스 포지션을 조정하여 위험을 더 잘 제어합니다.
  3. 매개 변수 적응: 기계 학습 또는 최적화 알고리즘을 활용하여 다른 시장 조건에 적응하기 위해 전략 매개 변수 적응을 달성합니다.

요약

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")


관련

더 많은