다단계 동적 추세 추적 정량적 전략: 헐 이동 평균을 기반으로 한 지능형 손절매 및 손절매 시스템

HMA 移动平均线 趋势跟踪 动态追踪止损 交叉信号 云层过滤 止损机制 风险管理 Hull Moving Average TREND FOLLOWING Dynamic Trailing Stop Crossover Signal Cloud Filter Stop-Loss Mechanism risk management
생성 날짜: 2025-07-08 09:40:44 마지막으로 수정됨: 2025-07-08 09:40:44
복사: 0 클릭수: 218
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다단계 동적 추세 추적 정량적 전략: 헐 이동 평균을 기반으로 한 지능형 손절매 및 손절매 시스템 다단계 동적 추세 추적 정량적 전략: 헐 이동 평균을 기반으로 한 지능형 손절매 및 손절매 시스템

개요

다단계 동적 추적 트렌드 정량화 전략은 헐 이동 평균 (Hull Moving Average, HMA) 을 기반으로 한 고급 트렌드 추적 시스템으로, 지능적인 입시 신호 인식과 동적 스톱 로드 메커니즘을 결합한다. 이 전략의 핵심은 다른 주기 (100, 200, 500, 1000) 의 HMA 지표를 사용하여 입시 신호를 구성하는 데 있으며, 3 층의 보호 메커니즘을 사용한다.

전략 원칙

이 전략의 핵심 논리는 다음의 네 가지 핵심 요소로 나눌 수 있습니다.

  1. 입력 신호 생성 메커니즘:

    • 긴 선 트렌드 판단: HMA500와 HMA1000을 사용하여 “구름”을 구축합니다. HMA500가 HMA1000 위에있을 때 황소 시장 환경으로 판단되며, 반대로 곰 시장 환경입니다.
    • 입시 조건: 황소 시장 환경에서 HMA100이 HMA200을 상향으로 통과하고 둘 다 HMA500 위에있을 때 멀티 신호를 트리거; 곰 시장 환경에서 HMA100이 HMA200을 하향으로 통과하고 둘 다 HMA500 아래에있을 때 공백 신호를 트리거
  2. 발사 메커니즘:

    • %를 설정하여 마이너스를 트리거합니다. (비용: 1.2%)
    • 가격의 입구에서 유리한 방향으로 이동 시 트리거 임값을 초과하면 트래킹 스톱 로직이 활성화됩니다
  3. 지능형 추적 차단 장치:

    • 발동 후, 시스템은 계속해서 새로운 고점을 추적합니다. (무엇을 더하는 것) 또는 새로운 낮은 점을 추적합니다. (무엇을 더하는 것)
    • 사용자 정의 트래킹 폭에 따라 (기본 0.8%), 동적으로 설정된 스톱 로즈
    • 가격 회수가 설정된 폭을 초과할 때 자동 평준화는 수익을 잠금합니다.
  4. 하드디스플레이 보호:

    • 추적 중지 트리거 전에 최대 손실 비율을 설정합니다 (설정 2.5%)
    • 만약 가격이 트리거 포인트 이전에 불리한 방향으로 움직여서 하드 스톱로스 설치를 넘으면, 필수적으로 평점을 설정하여 자금을 보호합니다.

이 전략은 엄격한 단일 포지션 제어를 채택하여 위험을 통제할 수 있도록 보장합니다. 시스템은 자동으로 입시 가격, 최고/최저 가격 및 트리거 상태를 기록하고 있으며, 완전히 자동화된 자금 관리가 구현됩니다.

전략적 이점

이 전략의 코드 구현을 심층적으로 분석한 결과, 다음과 같은 중요한 장점이 나타났습니다.

  1. 다단계 추세 확인4개의 다른 주기 HMA를 통해 구축된 시스템은, 엄격한 여러 확인 메커니즘을 형성하여, 입구 신호의 신뢰성을 크게 향상시키고, 가짜 침입으로 인한 손실을 줄였다.

  2. 자율적 위험 관리이 전략은 두 단계의 손해 중지 메커니즘을 설계했습니다. (시발 전 하드 스톱 및 시발 후 추적 스톱) 이는 큰 불리한 상황에서 적시에 손해를 막고, 추세 상황에서 수익을 극대화하여 다양한 시장 환경에 적응 할 수 있습니다.

  3. 정확한 수익 잠금동적 추적 스톱 로즈 (Dynamic Tracking Stop Loss) 는 가격 상승/하락을 자동으로 추적하여 “이윤을 달릴 수 있도록”라는 고전적인 거래 개념을 구현하여 인적 개입이 필요하지 않은 대부분의 이익을 잠금합니다.

  4. 고도의 사용자 정의세 가지 핵심 매개 변수 (시발한계, 추적폭, 최대손실) 는 사용자에 의해 사용자 정의되며, 다른 품종, 다른 변동성 및 다른 위험 선호에 적합하다.

  5. 시각적 지원이 전략은 HMA 지표와 트렌드 클라우드의 시각화를 내장하여 거래자가 현재 트렌드 상태와 입시 지점의 합리성을 직관적으로 이해할 수 있도록합니다.

전략적 위험

이 전략은 세심한 설계에도 불구하고 다음과 같은 잠재적인 위험들이 있습니다.

  1. 지진의 위험: 명백한 추세가 없는 간격적인 흔들림 시장에서 HMA 교차 신호는 빈번한 가짜 신호를 생성할 수 있으며, 이로 인해 연속적인 스톱 손실이 발생할 수 있다. 해결책은 변동률 지표 또는 추세 강도 확인과 같은 추가적인 필터링 조건을 추가하는 것이다.

  2. 매개변수 민감도: 전략 성능은 세 가지 핵심 매개 변수의 설정에 크게 의존한다. 부적절한 매개 변수는 조기 중단되거나 수익의 대부분을 놓치게 할 수 있다. 역사적 회귀를 통해 다양한 품종과 시간 주기에 대한 매개 변수 최적화를 권장한다.

  3. 슬라이드 포인트와 거래 비용 영향: 실 디스크 환경에서 슬라이드 포인트와 거래 비용이 전략 성능에 상당한 영향을 미칠 수 있습니다. 특히 추적 폭이 작은 설정에 대해 이러한 요소를 재측정에서 고려하고 파라미터를 적절하게 조정해야합니다.

  4. 트렌드 전환점 지연헐 이동 평균은 전통적인 이동 평균보다 더 빠르게 반응하지만, 여전히 약간의 지연성이 있으며, 추세가 갑자기 역전되면 더 큰 철회로 이어질 수 있다. 출전 시기를 최적화하기 위해 더 민감한 단기 지표와 결합하는 것을 고려할 수 있다.

  5. 단일 기술 지표 의존전략은 주로 HMA 지표 시리즈에 의존하며, 다차원 시장 분석이 부족합니다. 특정 시장 조건에서는 좋지 않을 수 있습니다. 동력 지표 또는 거래량 지표와 같은 다른 유형의 지표와 함께 교차 검증이 권장됩니다.

전략 최적화 방향

전략적 원리와 위험 분석을 바탕으로 다음과 같은 방향으로 최적화할 수 있습니다.

  1. 자기 적응 변수 시스템:

    • 시장의 변동성에 기반한 동적 변수 조정 메커니즘을 도입하는 것, 예를 들어 높은 변동성 동안 추적폭을 증가시키고 낮은 변동성 동안 촉발 값을 감소시키는 것
    • 구현 원칙: ATR (Average True Rate) 지표를 사용하여 시장의 변동성을 정량화하고, 매개 변수와 ATR의 함수 관계를 구축할 수 있다
  2. 다중 시간 프레임 분석:

    • 더 큰 시기의 트렌드 정보를 통합하여, 더 큰 시기의 트렌드 방향이 일치하는 경우에만 입장이 허용됩니다.
    • 구현 방법: 더 큰 주기 (예: 1시간, 4시간) 에 대한 HMA 상태의 검사를 추가하여 더 엄격한 추세 필터를 형성한다
  3. 양성 검증 메커니즘:

    • 트랜지먼트 확인 조건을 추가하여 신호가 발생했을 때 트랜지먼트를 확대하도록 요구합니다.
    • 구체적 구현: 상대적인 거래량 지표 (예: OBV 또는 상대적인 거래량 변화율) 를 추가적인 필터링 조건으로 사용할 수 있다.
  4. 지성적인 부분에서 멈춘다:

    • 세트 정지 메커니즘을 구현하고, 첫 번째 목표 지점에 도달했을 때 일부 포지션을 청산하고, 나머지 부분은 추적 스톱을 사용합니다.
    • 원칙: 이 방법은 전체적인 리스크/이익 비율을 높이기 위해 확실성 수익과 잠재적인 큰 트렌드 수익을 균형을 잡을 수 있습니다.
  5. 기계 학습 최적화:

    • 기계 학습 알고리즘을 사용하여 최적의 변수 조합과 시장 환경을 동적으로 식별합니다.
    • 방법: 현재 시장 환경에 적합한 파라미터 설정을 예측하기 위해 역사적인 데이터를 기반으로 분류 모델을 구축할 수 있습니다.
  6. 역전향 보호장치:

    • 극심한 가격 변동에 대한 역보호 논리를 추가하고, 단기간에 비정상적인 가격 변동이 발생할 경우 특별한 처리를 수행합니다.
    • 실현: 단기 가격 변화율을 모니터링하여 하락값을 초과할 때 일시적으로 스톱로스를 조정하거나 직접 평점을 설정할 수 있습니다.

요약하다

다단계 동적 추적 트렌드 정량화 전략은 다단계 Hull 이동 평균 지표와 스마트 스톱 스톱 손실 시스템을 결합한 고급 정량화 거래 전략이다. 그것은 엄격한 트렌드 확인 메커니즘을 통해 입문 신호 신뢰성을 높이고, 동시에 여러 계층의 위험 제어 시스템을 이용한다.

이 전략의 핵심 장점은 다양한 시장 환경에서 비교적 안정적인 성능을 유지할 수 있는 자율적이고 체계화된 수익 관리 방법이다. 그러나, 전략에는 파라미터 민감성 및 단일 지표 의존성 등의 위험이 존재하며, 트레이더가 보조 지표 검증을 추가하고, 자율적인 파라미터 시스템 및 다중 시간 프레임 분석 등의 방법을 구축하여 최적화를 필요로 한다.

합리적인 파라미터를 설정하고 시장 환경 분석과 결합하면 중장기 트렌드 추적 시스템의 핵심 구성 요소로 작용하여 거래자가 위험을 통제하면서 주요 트렌드 기회를 포착하고 안정적인 자금 성장을 달성 할 수 있습니다.

전략 소스 코드
/*backtest
start: 2025-01-01 00:00:00
end: 2025-07-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Samil Dogru SmartTrailing v1.1", overlay=true, pyramiding=0,
     default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === PARAMETRELER ===
triggerPerc     = input.float(1.2,  "Tetikleme Eşiği (%)", step=0.1)
trailPerc       = input.float(0.8,  "Trailing Marj (%)", step=0.1)
hardStopPerc    = input.float(2.5,  "Maksimum Zarar (%) (Tetiklenmeden önce)", step=0.1)

// === HMA'lar (giriş için referans) ===
hma100 = ta.hma(close, 100)
hma200 = ta.hma(close, 200)
hma500 = ta.hma(close, 500)
hma600 = ta.hma(close, 600)

isBull = hma500 > hma600
longCond  = ta.crossover(hma100, hma200) and isBull and hma100 > hma500 and hma200 > hma500
shortCond = ta.crossunder(hma100, hma200) and not isBull and hma100 < hma500 and hma200 < hma500

// === GİRİŞLER ===
if (longCond)
    strategy.entry("Long", strategy.long)
if (shortCond)
    strategy.entry("Short", strategy.short)

// === DURUM DEĞİŞKENLERİ ===
var float entryPrice    = na
var float maxSinceEntry = na
var bool  triggered     = false

// === POZİSYON AÇILDIĞINDA BAŞLAT ===
if strategy.opentrades > 0
    if na(entryPrice)
        entryPrice := strategy.position_avg_price
        maxSinceEntry := close
        triggered := false
    else
        // Güncel zirve/dip güncellemesi
        if strategy.position_size > 0
            maxSinceEntry := math.max(maxSinceEntry, close)
        if strategy.position_size < 0
            maxSinceEntry := math.min(maxSinceEntry, close)

        // Tetikleme kontrolü
        longTriggerPrice  = entryPrice * (1 + triggerPerc / 100)
        shortTriggerPrice = entryPrice * (1 - triggerPerc / 100)

        if strategy.position_size > 0 and close >= longTriggerPrice
            triggered := true
        if strategy.position_size < 0 and close <= shortTriggerPrice
            triggered := true

        // Çıkış kontrolü (trailing)
        if triggered
            if strategy.position_size > 0
                trailStop = maxSinceEntry * (1 - trailPerc / 100)
                if close <= trailStop
                    strategy.close("Long", comment="TRAIL EXIT LONG")
            if strategy.position_size < 0
                trailStop = maxSinceEntry * (1 + trailPerc / 100)
                if close >= trailStop
                    strategy.close("Short", comment="TRAIL EXIT SHORT")
        else
            // Tetiklenmeden önce sert zarar çıkışı (hard stop)
            if strategy.position_size > 0 and close <= entryPrice * (1 - hardStopPerc / 100)
                strategy.close("Long", comment="HARD STOP LONG")
            if strategy.position_size < 0 and close >= entryPrice * (1 + hardStopPerc / 100)
                strategy.close("Short", comment="HARD STOP SHORT")

// === POZİSYON KAPANDIĞINDA RESET ===
if strategy.opentrades == 0
    entryPrice := na
    maxSinceEntry := na
    triggered := false

// === GÖRSEL ===
plot(hma100,  title="HMA 100",  color=color.white,  linewidth=2)
plot(hma200,  title="HMA 200",  color=color.yellow, linewidth=3)
p1 = plot(hma500,  title="HMA 500",  color=color.green, linewidth=2)
p2 = plot(hma600, title="HMA 600", color=color.red,   linewidth=2)
fill(p1, p2, color=isBull ? color.new(color.green, 70) : color.new(color.red, 70), title="HMA Cloud")