HMA 가속 크로스오버 트레이딩 시스템: ATR 변동성 제어와 곡률 모멘텀 필터링을 결합한 추세 추종 전략

HMA ATR 动量指标 交叉信号 曲率过滤 波动率管理 风险控制 趋势跟踪 自适应止损
생성 날짜: 2025-06-30 15:16:40 마지막으로 수정됨: 2025-06-30 15:16:40
복사: 1 클릭수: 250
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

HMA 가속 크로스오버 트레이딩 시스템: ATR 변동성 제어와 곡률 모멘텀 필터링을 결합한 추세 추종 전략 HMA 가속 크로스오버 트레이딩 시스템: ATR 변동성 제어와 곡률 모멘텀 필터링을 결합한 추세 추종 전략

개요

HMA 가속 십자 거래 시스템은 헐 이동 평균 (Hull Moving Average, HMA) 의 교차 신호, 곡률 (Curvature) 필터와 평균 실제 범위 (Average True Range, ATR) 에 기반한 위험 관리 메커니즘을 결합한 종합적인 트렌드 추적 전략이다. 이 전략은 빠른 HMA와 느린 HMA의 교차를 통해 시장의 트렌드 방향을 결정하며, 곡률 지표를 사용하여 충분한 동력이있는 신호를 선택하고, ATR을 사용하여 스톱 손실과 포지션을 설정하여 시장의 변동성에 대해 효과적 인 크기를 달성한다.

전략 원칙

이 전략의 핵심은 세 가지 핵심 요소를 중심으로 이루어져 있습니다.

  1. HMA 교차 신호 시스템

    • 빠른 HMA (주기 15일) 와 느린 HMA (주기 34일) 가 동적인 경향 지표로 사용된다.
    • 빠른 HMA가 느린 HMA를 상향으로 통과하면 다중 신호가 생성됩니다.
    • 빠른 HMA가 느린 HMA를 아래로 통과하면 공백 신호가 발생
    • HMA는 전통적인 이동 평균보다 더 빠르게 반응하여 지연을 줄입니다.
  2. 곡률 운동 필터

    • 곡률은 빠른 HMA의 2차 변화율으로 계산된다: curv = ta.change (ta.change (fastHMA))
    • 이 지표는 실질적으로 트렌드의 ‘가속화’를 측정합니다.
    • 과잉 요구: 곡선 값이 설정 값 ((curvThresh) 보다 크므로, 정방향 가속을 보장합니다.
    • 공백 요구: 곡선 값이 마이너스 스릴 값 ((-curvThresh) 보다 작아, 마이너스 가속을 보장한다
    • 이 필터링 메커니즘은 약점이나 동력이 없는 상황을 효과적으로 제거합니다.
  3. ATR 기반의 위험 관리 프레임워크

    • ATR (14주기) 를 사용하여 시장의 변동성을 측정합니다.
    • 초기 스톱 손실 거리 = ATR × 스톱 손실 곱하기 ((1.5)
    • 추적 중지 거리 = ATR × 추적 배수 ((1.0)
    • 포지션 계산 공식: 포지션 = (계좌 자금 × 위험 비율) ÷ 중지 거리
    • 이것은 시장의 변동에 상관없이 거래의 위험이 항상 계정 자금의 일정한 비율 (설정 1%) 에 유지되도록 보장합니다.

거래 수행 논리는 명확하다: 빠른 HMA 상의 느린 HMA를 통과하고 곡률이 긍정적일 때, 더 많은 위치를 열고, 빠른 HMA 아래의 느린 HMA를 통과하고 곡률이 부정적일 때, 포지션을 열고, 공백한다. 출구 전략은 ATR 기반의 추적 손실을 채택하고, 가격이 유리한 방향으로 이동함에 따라, 중지 손실 지점도 그에 따라 조정되어 수익을 잠금한다. 트렌드 조건이 역전될 때 (예: 반향 교차 신호가 발생하면), 기존 포지션 지점은 평정된다.

전략적 이점

  1. 적응력HMA 자체는 가격 변화에 민감하며, 전략 전체는 시장의 변동성에 따라 자동으로 중지 거리 및 포지션 크기를 조정하여 다른 시장 환경에서 상대적으로 일관된 성과를 유지할 수 있습니다.

  2. 높은 필터 품질: 곡률 지표의 적용을 통해, 전략은 동력이 부족한 신호를 식별하고 필터링 할 수 있으며, 트렌드가 충분히 가속되면만 진입하여 가짜 브레이크와 유효하지 않은 거래를 크게 줄일 수 있습니다.

  3. 위험 통제ATR 기반의 위험 관리 시스템은 거래의 위험을 항상 예상 수준으로 유지하도록 보장합니다. 시장의 변동이 얼마나 심한지 상관없이 단일 거래로 인해 과도한 손실이 발생하지 않습니다.

  4. 동적 위치 관리전략: 현재 시장의 변동성과 계좌 자금 동성에 따라 최적의 포지션을 계산하고, 변동성이 높을 때 포지션을 자동으로 줄이고, 변동성이 낮을 때 포지션을 적당히 증가시켜, 자금 효율성과 위험 통제의 균형을 달성한다.

  5. 완전한 거래 프레임워크전략: 전략은 신호 생성, 입시 조건, 포지션 계산에서 중지 손실 관리에 대한 완전한 거래 시스템을 제공하며, 추가적으로 다른 모듈을 추가하지 않고 실제적으로 적용 할 수 있습니다.

  6. 양방향 거래 능력: 두방향 거래에 대한 포디와 포디를 지원하고, 단일 방향에만 국한되지 않고 다양한 시장 추세에서 수익 기회를 찾을 수 있습니다.

전략적 위험

  1. 시장의 부진: 트렌드 추적 전략으로서, 가로 상장 정리 또는 자주 변동하는 시장 환경에서, 연속적으로 소액 손실이 발생할 수 있습니다. 이는 흔히 “세탁지”라고 불립니다. 해결 방법은 시장 상태를 식별하는 모듈을 추가하여 변동하는 시장을 인식 할 때 거래를 중지하거나 파라미터를 조정하는 것입니다.

  2. 매개변수 민감도전략적 성능: HMA 주기, 곡선 미지수, ATR 곱 등과 같은 파라미터 설정에 민감하다. 잘못된 파라미터 선택으로 인해 과도한 거래 또는 중요한 트렌드를 놓칠 수 있다. 다양한 시장 환경에서 재검토를 통해 파라미터를 최적화하거나, 파라미터 자조 장치를 구현하는 것을 고려하는 것이 좋습니다.

  3. 슬라이드 포인트와 유동성 위험: 변동이 심한 시장에서 실제 실행 가격은 신호 가격과 큰 편차가 있을 수 있다. 특히 유동성이 낮은 품종에 있어서 이러한 미끄러짐은 전략의 성과에 현저하게 영향을 미칠 수 있다. 재검토에서 미끄러짐 요소를 고려하고 실전에서 유동성이 풍부한 거래 품종을 선택하는 데 주의를 기울이는 것이 좋습니다.

  4. 체계적 위험전략은 강한 추세 환경에서 더 큰 포지션을 가질 수 있으며, 시장이 급격한 반전이 발생하면 (중요한 뉴스 충격과 같은) 스톱로드를 추적하는 것은 제 시간에 자금을 보호하지 못할 수 있습니다. 절대적인 스톱 레미닛을 설정하거나 변동율 변동 탐지 장치를 추가 보호로 도입하는 것을 고려할 수 있습니다.

  5. 곡률 필터링이 너무 심하다: 너무 높은 곡률 값을 설정하면 초기 트렌드를 놓칠 수 있으며, 너무 낮은 것은 너무 많은 잡음 신호를 가져올 수 있습니다. 회전에서 균형점을 찾아야합니다. 또는 시장 상태의 동력에 따라 값을 조정하는 것을 고려하십시오.

최적화 방향

  1. 다중 시간 프레임 확인

    • 더 긴 주기의 HMA를 트렌드 필터로 추가할 수 있으며, 장기 트렌드가 단기 신호와 일치하는 경우에만 들어갑니다.
    • 구현 방법: 긴 주기 HMA 지표를 추가하고, 그 방향을 추가적인 입시 조건으로 설정합니다.
    • 장점: 신호 품질이 크게 향상되고 역대 거래가 줄어들었습니다.
  2. 자기 적응 곡선 절댓값

    • 현재 고정된 곡선 임계값은 다양한 변동 환경에서 지나치게 완만하거나 지나치게 엄격할 수 있다.
    • 최적화 방향: 역사 곡률 데이터에 따른 통계 분포 동적 조정 값
    • 구현 방법: 동적 임값을 설정하기 위해 곡률의 표준 차수 또는 백분수를 사용할 수 있다
    • 장점: 시장의 다양한 단계에서 최적의 신호 필터링 효과를 유지할 수 있습니다.
  3. 수량확인 도입

    • 현재 전략은 가격 데이터에만 기반하고 거래량 요소를 무시하고 있습니다.
    • 최적화 방향: 교차 신호가 생성될 때 교차량이 확대되는지 확인
    • 구현 방법: 거래량 지표를 추가하여 n일 평균보다 높은 거래량을 요구합니다.
    • 장점: 가짜 침입을 줄이고 신호 신뢰도를 높인다.
  4. 지능형 손해 관리

    • 현재 추적 중지 메커니즘은 간단하고 더 최적화 할 수 있습니다.
    • 최적화 방향: 시장 구조의 역동성에 따라 중지 거리를 조정
    • 실행 방법: 트렌드 가속화 단계에서 고정 손실을 강화하고, 정리 단계에서 적절하게 느슨하게 할 수 있습니다.
    • 장점: 수익보호와 가격공간을 더 잘 균형 잡는 것
  5. HMA 미분곡선 분석

    • 코드에 언급된 흥미로운 아이디어
    • 최적화 방향: 빠른 HMA를 분석하는 것보다는 두 HMA 사이의 차이의 곡률을 계산하는 것
    • 구현 방법: diff = fastHMA - slowHMA; diffCurv = ta.change (ta.change (diff))
    • 장점: 트렌드 전환 강도에 대한 더 정확한 정보를 제공할 수 있습니다.
  6. 자금 관리 전략의 최적화

    • 현재 고정된 리스크 비율은 최적의 선택이 아닐 수 있습니다.
    • 최적화 방향: 시스템 손실 상태에 따라 위험 비율을 동적으로 조정
    • 실행 방법: 연속적인 수익 후 리스크 비율을 약간 높이고, 연속적인 손실 후 감소
    • 장점: 유리한 시장 환경에서 자금 사용 효율을 높이고, 불리한 환경에서 자금을 더 잘 보호합니다.

요약하다

HMA 액셀러레이션 크로스 트레이딩 시스템은 잘 설계된 트렌드 추적 전략으로, HMA 크로스, 곡선 동력 필터링 및 ATR 위험 관리를 결합하여 완전하고 강력한 거래 프레임 워크를 구축합니다. 이 전략의 핵심 장점은 시장 추세를 포착하면서 거래 자금을 안전하게 보호할 수 있는 자율 적응성과 포괄적 인 위험 제어입니다.

전략은 특히 트렌드 특성이 뚜렷한 시장에 적합하지만, 불안정한 시장에서 도전을 받을 수 있다. 전략의 성능은 권장된 최적화 조치를, 특히 다중 시간 프레임 확인 및 적응 변수 조정을 시행함으로써 더욱 향상될 것으로 예상된다. 정량 거래자에게는, 이것은 직접적으로 적용할 수 있고, 더 복잡한 거래 전략을 구축하는 데 출발점이 될 수 있는 단단한 기반을 가진 시스템이다.

주목할 점은, 어떤 거래 전략도 충분한 역사 회수와 모의 거래 검증을 거쳐 특정 시장 특성 및 개인 위험 선호에 따라 변수를 조정해야 한다는 것입니다. 이 전략은 기술 분석, 동력 이론 및 위험 관리의 균형있는 프레임 워크를 제공하지만, 성공적인 적용은 여전히 거래자의 신중한 조정과 지속적인 모니터링을 필요로합니다.

전략 소스 코드
/*backtest
start: 2024-06-30 00:00:00
end: 2025-06-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":50000000}]
*/

//@version=6
strategy("HMA Crossover + ATR + Curvature (Long & Short)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === Inputs ===
fastLength  = input.int(15, title="Fast HMA Period")
slowLength  = input.int(34, title="Slow HMA Period")
atrLength   = input.int(14, title="ATR Period")
riskPercent = input.float(1.0, minval=0.1, maxval=10, title="Risk per Trade (%)")
atrMult     = input.float(1.5, title="Stop Loss ATR Multiplier")
trailMult   = input.float(1.0, title="Trailing Stop ATR Multiplier")
curvThresh  = input.float(0.0, step=0.01, title="Curvature Threshold (Min Acceleration)")

// === Calculations ===
fastHMA = ta.hma(close, fastLength)
slowHMA = ta.hma(close, slowLength)
atr     = ta.atr(atrLength)

// Curvature: approximate second derivative (acceleration)
curv = ta.change(ta.change(fastHMA))

// Entry Conditions
bullish = ta.crossover(fastHMA, slowHMA) and curv > curvThresh
bearish = ta.crossunder(fastHMA, slowHMA) and curv < -curvThresh

// Risk Management
stopLoss = atr * atrMult
trailStop = atr * trailMult
capital = strategy.equity
riskCapital = capital * (riskPercent / 100)
qty = riskCapital / stopLoss

// === Strategy Logic ===
if (bullish)
    strategy.entry("Long", strategy.long, qty=qty)
    strategy.exit("Long Trail Stop", from_entry="Long", trail_points=trailStop, trail_offset=trailStop)

if (bearish)
    strategy.entry("Short", strategy.short, qty=qty)
    strategy.exit("Short Trail Stop", from_entry="Short", trail_points=trailStop, trail_offset=trailStop)

plotshape(bullish, title="Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(bearish, title="Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")