트리플 헐 이동 평균 추세 추종 정량적 전략

HMA EHMA THMA 趋势跟踪 无止损 固定风险 动态趋势确认 移动平均线交叉
생성 날짜: 2025-08-11 08:56:07 마지막으로 수정됨: 2025-08-11 08:56:07
복사: 2 클릭수: 181
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

트리플 헐 이동 평균 추세 추종 정량적 전략 트리플 헐 이동 평균 추세 추종 정량적 전략

개요

트리플 헐 평균 트렌드 추적 수량화 전략은 헐 이동 평균 시리즈를 기반으로 한 고효율 트렌드 추적 거래 시스템이다. 이 전략은 세 가지 다른 유형의 헐 평균 변종 ((HMA, EHMA 및 THMA) 을 사용하여 시장의 트렌드를 식별하고 포착한다. 핵심 논리는 헐 평균의 현재 값과 이전 두 주기의 값 사이의 관계를 관찰하는 데 있다.

전략 원칙

이 전략의 핵심 원칙은 3가지의 헐 평선형 변종을 중심으로 전개된다:

  1. HMA (Hull Moving Average): 가중 이동 평균 ((WMA) 을 사용하여 계산, 가장 높은 반응 속도와 최소의 지연, 빠르게 변화하는 시장에 적합하다.
  2. EHMA (지수 헐 이동 평균): 지수 이동 평균 ((EMA) 을 사용하여 WMA를 대체하여 계산하여 반응성을 유지하면서 더 부드러운 곡선을 제공하여 시장 소음을 효과적으로 필터링합니다.
  3. THMA (트리플 헐 이동 평균): 더 복잡한 WMA 조합 계산을 사용하여, 세 층 평준화 효과를 제공하며, 더 강한 트렌드 신호를 확인하기에 적합하다.

이 전략은 현재 헐 평균 선값과 두 주기 전의 값을 비교하여 트렌드 방향을 확인합니다. 현재 값이 두 주기 전의 값보다 크면 다목적 트렌드, 작으면 공백 트렌드라고 판단합니다. 이 비교 방법은 전통적인 가격과 평균 선의 교차보다 우수하며, 가짜 돌파구를 더 효과적으로 필터링하고 구조적 트렌드 변화를 확인 할 때만 진입합니다.

거래 논리는 명확하다: 다단계 트렌드를 확인했을 때, 모든 공수 포지션을 닫고 다단계 트렌드를 열어; 공수 트렌드를 확인했을 때, 모든 다단계 포지션을 닫고 공수 포지션을 열어. 매 거래의 위험은 계좌 적당금의 1%로 고정되어 있으며, 스톱 손실과 스톱 피트 지점이 설정되지 않고, 트렌드 반전 신호를 통해 자연 평정한다.

전략적 이점

  1. 다차원 경향 확인: 세 가지 다른 특성을 가진 Hull Average Line Variants를 통해 거래자는 시장 특성과 거래 시간 프레임에 따라 가장 적합한 계산 방법을 선택할 수 있으며, 전략의 적응성을 강화할 수 있습니다.

  2. 구조적 추세 식별간단한 가격-평균선 교차와는 달리, 이 전략은 평평선 자체의 동적인 변화를 통해 트렌드를 확인하고, 진정한 구조적인 트렌드 변화를 효과적으로 식별하고, 가짜 신호의 위험을 줄일 수 있다.

  3. 시각의 명확함: 전략은 컬러 코딩을 사용하여 (다중 머리 트렌드는 초록색, 공백 머리 트렌드는 빨간색) 트렌드 상태를 직관적으로 표시하고, 선택적으로 K 라인을 색상으로 표시하여 즉각적인 시장 해석을 제공합니다.

  4. 자금 관리 훈련고정 1%의 위험 분배는 건전한 자금 관리를 통해 과도한 레버리지로 인한 위험을 방지합니다.

  5. 트렌드가 지속되는 포획고정된 스톱 스톱을 설정하지 않음으로써, 전략은 장기적인 트렌드 운동을 최대한 포착할 수 있으며, 조기 탈퇴로 인한 기회비용 손실을 피할 수 있다.

  6. 심리적 장점단순화된 의사결정기구와 명확한 입출장규칙은 거래 과정에서 감정적인 방해를 줄이고, 훈련된 거래 정신을 조성하는 것을 지원한다.

전략적 위험

  1. 탈퇴 위험: 정지 손실이 없기 때문에, 급격한 시장 역전 시, 전략은 큰 회수를 직면 할 수 있으며, 트렌드 역전 신호가 나타나기 전까지는 평준화 될 수 있습니다. 이 위험을 완화하기 위해, 전략의 핵심 논리에 영향을 미치지 않는 전제 조건에서 원거리 동적 손실 장치를 추가하는 것이 고려 될 수 있습니다.

  2. 매개변수 민감도: Hull 평균선 길이 변수 (기본 55) 의 선택은 전략 성과에 중요한 영향을 미칩니다. 짧은 길이는 과도한 거래로 이어질 수 있으며 너무 긴 것은 중요한 트렌드 시작점을 놓칠 수 있습니다.

  3. 가짜 침입 위험: 전략이 2주기 비교 메커니즘을 통해 가짜 신호를 줄이기는 하지만, 수평 정리 또는 높은 변동성 시장에서, 단기적인 가짜 브레이크가 발생하여 불필요한 거래가 발생할 수 있다. 추가적인 필터 조건을 추가하여 (변동률 필터와 같은) 더 최적화 할 수 있다.

  4. 시장 적응성의 제한: 전략은 강한 추세 시장에서 잘 작동하지만, 간격적인 흔들림이나 방향없는 시장에서 좋지 않을 수 있습니다. 거래자는 시장 환경에 따라 유연하게 조정 여부에 따라 전략을 활성화해야합니다.

전략 최적화 방향

  1. 적응 변수 조정: 변동률 지표 ((ATR와 같은) 를 도입하여 헐 평균선의 길이를 동적으로 조정하여 높은 변동 환경에서 더 긴 주기를 사용하고 낮은 변동 환경에서 더 짧은 주기를 사용하여 전략의 적응력을 향상시킬 수 있습니다.

  2. 다중 시간 프레임 확인더 높은 시간 프레임의 트렌드 확인 메커니즘을 도입하여 상하 시간 프레임의 트렌드가 일치하는 경우에만 포지션을 열면 가짜 브레이크와 불필요한 거래 빈도를 효과적으로 줄일 수 있습니다.

  3. 동적 위험 관리: 현재 전략은 1%의 고정된 계정 리스크를 사용하며, 시장의 변동성과 트렌드 강도에 따라 동적으로 리스크 비율을 조정하는 것을 고려할 수 있습니다. 강한 트렌드에서는 포지션을 적절하게 증가시키고, 약한 트렌드에서는 포지션을 감소시킵니다.

  4. 다인자 통합: 다른 기술 지표 (RSI, MACD 또는 브린 띠와 같은) 와 결합하여 보조 확인 신호로 사용할 수 있으며, 다중 요소 트렌드 확인 시스템을 구축하여 신호 품질을 향상시킵니다.

  5. 일부 수익 잠금 메커니즘: 고정 스톱을 설정하지 않는 핵심이념을 유지하면서, 일부 수익 잠금 메커니즘을 도입 할 수 있습니다. 예를 들어, 특정 수익을 달성 한 후 일부 포지션을 이동하고 다른 부분을 계속 추세를 추적하여 위험과 수익을 균형을 잡습니다.

요약하다

트리플 헐 평준 트렌드 추적량화 전략은 성숙하고 정교한 트렌드 추적 거래 철학을 나타냅니다. 헐 평준 변형을 유연하게 선택하고, 구조적인 트렌드 확인 방법을 사용하며, 엄격한 위험 통제를 시행하고, 트렌드의 자연스러운 진화를 신뢰함으로써, 이 전략은 장기 시장 추세를 추구하는 거래자에게 간결하고 효과적인 프레임워크를 제공합니다.

고정된 스톱 스톱을 설정하지 않고는 약간의 유연성을 희생하지만, 자연스러운 탈퇴 메커니즘으로 평행선 반전 신호를 사용하여 위험 제어와 트렌드 캡처 사이의 모순을 성공적으로 균형을 맞추는 전략이다. 이 전략은 특히 시장 적응력과 위험 관리 측면에서, 앞서 제시한 최적화 방향을 통해 성능을 더욱 향상시킬 잠재력이 있습니다.

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

//@version=6
strategy("Hull Suite Strategy – 1% Risk, No SL/TP (v6)", overlay=true, pyramiding=1,
     default_qty_type=strategy.percent_of_equity, default_qty_value=1)

// Inputs
string modeSwitch = input.string(defval="Hma", title="Hull Variation", options=["Hma", "Ehma", "Thma"])
int length = input.int(defval=55, title="Hull Length")
bool colorBars = input.bool(defval=false, title="Color candles by trend?")

// Hull definitions
f_hma(float src, int len) =>
    ta.wma(2 * ta.wma(src, len / 2) - ta.wma(src, len), math.round(math.sqrt(len)))

f_ehma(float src, int len) =>
    ta.ema(2 * ta.ema(src, len / 2) - ta.ema(src, len), math.round(math.sqrt(len)))

f_thma(float src, int len) =>
    ta.wma(3 * ta.wma(src, len / 3) - ta.wma(src, len / 2) - ta.wma(src, len), len)

// Calculate hull
float hull = switch modeSwitch
    "Hma"  => f_hma(close, length)
    "Ehma" => f_ehma(close, length)
    "Thma" => f_thma(close, math.round(length / 2))

bool isBull = hull > hull[2]
bool isBear = hull < hull[2]

// Plot hull line
plot(hull, color = isBull ? color.green : color.red, linewidth=2)

// Format candle colors outside of blocks
color barCol = colorBars ? (isBull ? color.new(color.green, 80) : (isBear ? color.new(color.red, 80) : na)) : na
barcolor(barCol)

// Trade entries/exits
if isBull
    strategy.close("Short")
    strategy.entry("Long", strategy.long)
else if isBear
    strategy.close("Long")
    strategy.entry("Short", strategy.short)