이중 이동 평균 HullMA 크로스 오버 트렌드 전략

저자:차오장, 날짜: 2024-02-26 11:21:45
태그:

img

전반적인 설명

이중 이동 평균 HullMA 크로스오버 트렌드 전략은 이중 이동 평균의 크로스오버를 기반으로 하는 트렌드 추종 전략이다. 이중 이동 평균 (WMA) 라인을 사용하여 이중 이동 평균 시스템을 구축하고, 이선이 넘어가면 거래 신호를 생성한다. 이 전략은 또한 신호를 추가적으로 필터링하기 위해 가격 브레이크아웃 검증을 통합한다.

전략 논리

이중 이동 평균 HullMA 크로스오버 트렌드 전략은 wma1, wma2, wma3를 포함한 다른 기간을 가진 세 WMA 라인을 사용합니다. wma2와 wma3는 이중 이동 평균 시스템을 구성합니다. wma3 위의 wma2 교차는 상승 신호를 제공하며, wma3 아래의 wma2 교차는 하락 신호를 제공합니다. wma1은 보조 참조 라인으로 사용됩니다.

또한, 전략은 신호 검증을 강화하기 위해 홀 이동 평균을 사용합니다. 구체적으로, 2 기간 WMA 두 배 (n2ma) 와 n 기간 WMA (nma) 사이의 차이를 계산합니다. 차이가 상승할 때만 황소 신호가 유효한 것으로 확인됩니다. 차이가 떨어질 때만 베어 신호가 유효한 것으로 확인됩니다.

이 전략은 또한 가격 검증을 포함합니다. 가격이 전날보다 높을 때만 올 신호가 긴 주문에 유효한 것으로 확인됩니다. 가격이 전날보다 낮을 때만 베어 신호가 짧은 주문에 유효한 것으로 확인됩니다.

이점 분석

이중 이동 평균 HullMA 크로스오버 트렌드 전략은 이중 이동 평균 크로스오버와 가격 검증을 결합하여 잘못된 신호를 효과적으로 필터 할 수 있습니다. 이것은 가장 큰 강점입니다. 또한, 다양한 기간의 세 개의 이동 평균 라인을 사용하여 전략은 다양한 수준의 트렌드를 일찍 포착 할 수 있습니다. 스톱 손실 메커니즘은 매우 안정적이고 신뢰할 수 있습니다.

위험 분석

트렌드를 따르는 전략으로서, 이중 이동 평균 HullMA 크로스오버 트렌드 전략은 범위 제한 시장에서 상대적으로 더 많은 거래와 미끄러짐 비용을 창출 할 수 있습니다. 또한, 이중 이동 평균 크로스오버 시스템은 너무 민감하게 반응하고 옆 트렌드 중에 잘못된 신호를 방출 할 수 있습니다. 이동 평균 매개 변수를 조정하거나 그에 따라 추가 필터를 부과하는 것이 좋습니다.

최적화 방향

이중 이동 평균 HullMA 크로스 오버 트렌드 전략은 다음 측면으로 개선 될 수 있습니다:

  1. 가장 좋은 매개 변수 조합을 찾기 위해 이동 평균 매개 변수를 최적화

  2. 가짜 브레이크를 제거하기 위해 볼륨이나 변동성 같은 필터를 추가합니다.

  3. 신호 품질을 향상시키기 위해 추가 검증으로 다른 지표를 포함합니다.

  4. 동적으로 이동 평균 기간 매개 변수를 최적화

요약

요약하자면, 이중 이동 평균 HullMA 크로스오버 트렌드 전략은 안정적이고 신뢰할 수 있는 트렌드 추후 전략이다. 이중 이동 평균 크로스오버와 가격 검증을 결합하여 고품질 신호를 생산한다. 매개 변수 조정 및 필터를 추가함으로써 잘못된 신호를 더욱 줄이고 더 나은 성능을 얻을 수 있다. 중장기 트렌드를 잡는 데 적합하며 양적 거래에 대한 확실한 선택이다.


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

//@version=2
strategy("ZendicatoR", overlay=true)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)

더 많은