홀 속도 이동 평균 및 칼만 필터를 기반으로 한 추세 추적 전략


생성 날짜: 2023-11-01 17:10:49 마지막으로 수정됨: 2023-11-01 17:10:49
복사: 0 클릭수: 1160
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

홀 속도 이동 평균 및 칼만 필터를 기반으로 한 추세 추적 전략

개요

이 전략은 홀 이동 평균과 칼만 파동을 결합하여 가격 트렌드를 식별하고 추적하며 트렌드 추적 전략에 속한다. 그것은 두 개의 다른 주기의 홀 이동 평균을 사용하여 거래 신호를 구성하고 칼만 파동과 함께 부드러운 처리를 수행하여 신호 품질과 전략의 안정성을 향상시킵니다.

전략 원칙

  • 전략은 24주기 홀 이동 평균 hma와 24주기 트리플 홀 이동 평균 hma3를 사용하여 거래 신호를 구성한다.

  • 하마 3를 상단으로 입으면 구매 신호가 발생하고 하마 3를 하단으로 입으면 판매 신호가 발생한다.

  • 정책은 기본적으로 칼만 필터를 끄고, 칼만 필터를 켜면, hma와 hma3를 칼만 필터 처리하여 과도한 소음을 필터링하여 신호 품질을 향상시킵니다.

  • 칼만파는 예측과 교정 단계를 통해 신호의 무작위적 잡음을 제거한다. 매번의 측정과 이전 예측 사이의 차이는 교정항으로 사용되어 다음 측정값을 더 정확하게 예측한다. 반복적으로 예측과 교정함으로써 잡음의 영향을 점차적으로 줄여서 신호를 더 부드럽게 만든다.

  • 이 전략은 카르만 파동을 사용하여 이동 평균 전략의 안정성을 강화하고, 무작위적 변동의 영향을 제거하고, 지속적인 추세를 추적한다.

전략적 이점

  • 단일 이동 평균에 비해 이중 이동 평균 시스템은 지속되는 트렌드를 더 잘 식별한다.

  • 홀 이동 평균은 중화 방식으로 계산되어 최근 가격에 더 큰 무게를 부여하여 가격 변화를 더 민감하게 포착할 수 있다.

  • 칼만 필터는 신호의 무작위 잡음을 효과적으로 필터링하여 가짜 신호를 줄이고 신호 품질을 향상시킵니다.

  • 전략의 매개 변수는 조정할 수 있으며, 주기의 길기와 칼만 파동의 증가는 시장에 따라 조정될 수 있으며, 다른 상황에 적응할 수 있다.

  • 전략은 과도한 무작위적인 변동에 속지 않도록 더 지속적인 추세를 식별할 수 있는 신호를 구축하기 위해 초주기 기술을 사용합니다.

  • 시각적 인터페이스는 신호와 트렌드 상태를 직관적으로 표시하여 조작하기 쉽습니다.

전략적 위험

  • 이중 이동 평균 전략은 트렌드 전환점에서 잘못된 신호를 발생시키며, 전환점을 적시에 잡을 수 없습니다.

  • 이동 평균은 지연되어 있고, 가격의 급격한 반전 기회를 놓칠 수 있다.

  • 급격한 변동이 있는 상황에는 적용되지 않으며, 흔들림 뒤집기 단계에서 사용해서는 안된다.

  • 칼만 필터의 파라미터 설정은 전략의 성능에 영향을 미치며, 과도한 증가는 유효한 신호를 필터링할 수 있다.

  • 긴 주기 설정은 반응이 예민하지 않으며, 짧은 주기 설정은 소음에 영향을 받기 쉽다. 시장에 따라 변수를 조정해야 한다.

  • 다수 공백 보유 기간은 고정되지 않으며, 보유하지 않는 단계가 존재하며, 자금 활용 효율성을 떨어뜨린다.

최적화 방향

  • 적응형 이동 평균 동적 최적화 파라미터를 적용하여 변동률에 따라 주기 길이를 조정할 수 있습니다.

  • 변동률 지표와 함께 시장 상태를 판단하고, 흔들리는 시장에서 거래를 피하고, 트렌드가 명확할 때만 거래한다.

  • 손실을 방지하고 위험을 통제할 수 있는 전략을 수립할 수 있다.

  • 카르만 필터 파라미터를 최적화하여 추적 민감도와 노이즈 필터링 수준을 균형 잡는다.

  • 다른 지표와 결합하여 신호의 유효성을 확인합니다. 예를 들어, 양력 지표, 브린 띠 판단 트렌드 지속성 등등.

  • 기계학습과 같은 방법을 통해 훈련된 파라미터는 전략이 더 거칠고 적응할 수 있게 해준다.

요약하다

이 전략은 쌍홀 이동 평균과 칼만 파동을 통해 트렌드를 추적하여 지속되는 트렌드를 효과적으로 식별하여 신호 품질을 향상시킬 수 있습니다. 그러나 변수 최적화, 시장 적응성 조정, 위험 제어에 주의를 기울이면 안정적인 수익을 얻을 수 있습니다. 기계 학습 및 정량 분석은 전략의 성능을 더욱 향상시킬 수 있습니다. 지속적인 최적화를 통해 안정적이고 효율적인 트렌드 추적 거래 전략을 만들 수 있습니다.

전략 소스 코드
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hull Trend with Kahlman Strategy Backtest", shorttitle="HMA-Kahlman Trend Strat", overlay=true)

src       = input(hl2,   "Price Data")
length    = input(24,    "Lookback")
showcross = input(true,  "Show cross over/under")
gain      = input(10000, "Gain")
k         = input(true,  "Use Kahlman")

hma(_src, _length) =>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length) =>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)

kahlman(x, g) =>
    kf = 0.0
    dk = x - nz(kf[1], x)
    smooth = nz(kf[1],x)+dk*sqrt((g/10000)*2)
    velo = 0.0
    velo := nz(velo[1],0) + ((g/10000)*dk)
    kf := smooth+velo
  
a = k ? kahlman(hma(src, length), gain) : hma(src, length)
b = k ? kahlman(hma3(src, length), gain) : hma3(src, length)
c = b > a ? color.lime : color.red
crossdn = a > b and a[1] < b[1]
crossup = b > a and b[1] < a[1]

p1 = plot(a,color=c,linewidth=1,transp=75)
p2 = plot(b,color=c,linewidth=1,transp=75)
fill(p1,p2,color=c,transp=55)
plotshape(showcross and crossdn ? a : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="S", textcolor=color.white, transp=0, offset=-1)
plotshape(showcross and crossup ? a : na, location=location.absolute, style=shape.labelup, color=color.green, size=size.tiny, text="B", textcolor=color.white, transp=0, offset=-1)

longCondition = crossup
if (longCondition)
    strategy.entry("LE", strategy.long)

shortCondition = crossdn
if (shortCondition)
    strategy.entry("SE", strategy.short)