모멘텀 크로스오버 볼링거 밴드 트렌드 추적 전략

저자:차오장, 날짜: 2024-02-26 16:52:16
태그:

img

전반적인 설명

이 전략은 시장 트렌드의 방향을 결정하기 위해 볼링거 밴드를 사용하며 트렌드 추적 거래를 구현하기 위해 모멘텀 지표를 결합합니다. 전략 이름의 모멘텀은 모멘텀 지표의 채택을 나타냅니다. 크로스오버는 지표 크로스오버를 기반으로 멀티-도킹 및 단축 판매 신호를 결정하는 것을 나타냅니다. 볼링거 밴드는 트렌드 방향을 결정하기 위해 볼링거 밴드를 사용하는 것을 나타냅니다. 트렌드는 트렌드를 추적하는 전략을 나타냅니다.

전략 원칙

이 전략은 크게 세 부분으로 나눌 수 있습니다.

  1. 볼링거 밴드의 방향을 판단하십시오. 볼링거 밴드의 중간 레일은 이동 평균을 나타내고 상부 및 하부 레일은 변동 범위를 나타냅니다. 가격이 상부 레일 근처에있을 때, 그것은 과잉 구매됩니다. 하부 레일 근처에있을 때, 그것은 과잉 판매됩니다. 볼링거 밴드의 방향은 가격 트렌드의 방향을 나타냅니다.

  2. 이 전략은 헐 모멘텀을 사용합니다. 헐 모멘텀은 빠른 이동 평균 빼기 느린 이동 평균에서 파생됩니다. 긍정적 값은 상승 추세를 나타냅니다. 부정적인 값은 하락 추세를 나타냅니다.

  3. 크로스오버 신호. 빠른 이동 평균이 아래에서 느린 이동 평균을 넘으면 긴 신호가 생성됩니다. 위에서 아래로 넘으면 짧은 신호가 생성됩니다.

거래 규칙은: 볼링거 밴드의 방향은 주요 트렌드를 나타내고, 모멘텀 인디케이터의 크로스오버는 시장 진입 시기를 나타냅니다. 모멘텀 크로스오버가 볼링거 밴드의 방향과 일치할 때 거래 신호가 생성됩니다. 즉 볼링거 밴드가 나타내는 트렌드 방향을 추적합니다.

전략 의 장점

  1. 트렌드와 모멘텀을 결합하여 잘못된 돌파구를 피하십시오. 대규모 트렌드를 판단하기 위해 볼린거 밴드를 채택하고, 로컬 돌파구를 추구하고있는 포메셋 위험을 피하기 위해 특정 입구 지점을 결정하기 위해 모멘텀 지표를 사용하십시오.

  2. 더 나은 리스크 제어. 볼링거 밴드는 단순한 이동 평균보다 더 효과적인 스톱 로스 포인트를 제공합니다.

  3. 더 효율적인 트렌드 추적. 모멘텀 지표는 시장에 진입 한 후 가격을 원래 방향으로 계속 밀어 넣을 수있는 충분한 힘을 보장 할 수 있으며 트렌드 추적을 더 원활하게합니다.

전략 의 위험

  1. 볼링거 밴드 결정 실패의 위험. 볼링거 밴드는 항상 완전히 정확하게 추세를 결정하지 않으며, 이는 방향 신호를 잘못 제공하여 손실율을 증가시킬 수 있습니다.

  2. 트렌드 역전 위험. 볼링거 밴드가 대규모 트렌드를 올바르게 반영하더라도 중장기 및 단기간에 가격이 역전될 수 있습니다. 거래를 할 때 유의해야합니다.

  3. 매개 변수 최적화의 위험. 계산 주기와 같은 전략 매개 변수는 최고의 거래 효과를 얻기 위해 다른 시장 데이터에 최적화되어야합니다.

전략의 최적화 방향

  1. 더 많은 지표 필터를 결합하십시오. 볼링거 밴드 및 허스 모멘텀 외에도 MACD 및 KDJ와 같은 다른 지표가 추가되어 지표 필터를 형성하여 판단 정확도를 향상시킬 수 있습니다.

  2. 적응적 매개 변수 최적화. 전략 안정성을 향상시키기 위해 다양한 품종과 시장 환경에 따라 실시간으로 매개 변수를 최적화하기 위해 기계 학습 알고리즘에 가입하십시오.

  3. 스톱 로스 전략 최적화. 주요 트렌드가 변경되기 전에 수익을 최대화하고 트렌드가 역전되면 손실을 가장 빨리 중지하십시오.

요약

이 전략은 대규모 트렌드를 결정하기 위해 볼링거 밴드와 특정 입구 지점을 결정하기 위해 허스 모멘텀 지표를 통합하여 트렌드를 효과적으로 추적합니다. 동시에, 더 많은 지표 필터를 추가하고 적응 매개 변수 최적화, 스톱 로스 전략 최적화 등 안정성과 수익성을 향상시키기 위해 개선 할 여지가 있습니다.


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4 
//                                                Hull Moving Average Crossover by SeaSide420
strategy("Hull Moving Average Crossover Strategy", overlay=true)
keh=input(title="HullMA cross",defval=10)
p=input(ohlc4)
n2ma=2*ta.wma(p,math.round(keh/2))
nma=ta.wma(p,keh)
diff=n2ma-nma
sqn=math.round(math.sqrt(keh))
n2ma1=2*ta.wma(p[1],math.round(keh/2))
nma1=ta.wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=math.round(math.sqrt(keh))
n1=ta.wma(diff,sqn)
n2=ta.wma(diff1,sqn)
hullcross1 = n1
hullcross2 = n2
longcross1=(n1[0]-n1[3])+(n1[0]-n2[4])*100
longcross2=(n2[0]-n2[3])+(n2[0]-n1[4])*100
closelong = n1<n2 and longcross1<longcross2
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and longcross1>longcross2
if (closeshort)
    strategy.close("Short") 
longCondition = n1>n2 and longcross1>longcross2 and strategy.opentrades<1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and longcross1<longcross2 and strategy.opentrades<1
if (shortCondition)
    strategy.entry("Short",strategy.short)
b=hullcross1>hullcross2?color.green:color.red
c=hullcross2>hullcross1?color.green:color.red
plot(ta.cross(hullcross1, hullcross2) ? hullcross1 : na,color=c, linewidth = 5, offset=3)
barcolor(longcross1 < longcross2 ? color.black : color.white)
bgcolor(longcross2 < longcross1 ? color.green : color.black, transp=85)
plotshape(ta.cross(longcross2, longcross1) ? longcross2 : na,   text="X", style=shape.labeldown, location=location.bottom)

더 많은