리소스 로딩... 로딩...

이중 기하급수적인 이동 평균 모멘텀 크로스오버 거래 전략

저자:차오장, 2025-01-06 13:53:11
태그:테마EMASMAMARSI

img

전반적인 설명

이 전략은 트리플 익스포넌셜 이동 평균 (TEMA) 을 기반으로 한 트렌드 추적 거래 시스템이다. 단기 및 장기 TEMA 지표 사이의 교차 신호를 분석하여 시장 추세를 포착하며 위험 관리를 위해 변동성 기반 스톱 로스를 통합합니다. 전략은 300 및 500 기간 TEMA 지표를 신호 생성 기초로 사용하여 5 분 시간 프레임에서 작동합니다.

전략 원칙

전략의 핵심 논리는 다음의 핵심 요소에 기초합니다.

  1. 트렌드 방향을 파악하기 위해 두 개의 다른 기간 TEMA (300 및 500) 를 사용합니다.
  2. 단기 TEMA가 장기 TEMA를 넘을 때 긴 신호를 생성합니다.
  3. 단기 TEMA가 장기 TEMA보다 낮을 때 짧은 신호를 생성합니다.
  4. 스톱 로스 레벨을 설정하기 위해 10 기간 최고 및 낮은 가격을 사용합니다.
  5. 반전 신호가 나타나기 전까지는 위치를 유지합니다.

전략적 장점

  1. 신호 안정성: 더 긴 기간 TEMA는 시장 소음을 효과적으로 필터링하고 잘못된 신호를 줄입니다.
  2. 강력한 리스크 제어: 단일 거래 리스크 통제를 위해 변동성 기반의 스톱 로스를 포함합니다.
  3. 강력한 트렌드 포착: TEMA는 전통적인 이동 평균보다 트렌드에 더 빠르게 반응합니다.
  4. 전체 거래 루프: 명확한 입점, 스톱 로스 및 수익 취득 조건을 포함합니다.
  5. 높은 매개 변수 적응성: 주요 매개 변수는 시장 특성에 따라 유연하게 조정할 수 있습니다.

전략 위험

  1. 부산 시장 위험: 연속 손실로 이어지는 범위 제한 시장에서 잘못된 신호에 취약합니다.
  2. 미끄러짐 위험: 변동성 기간 동안 5분 시간 프레임에 상당한 미끄러짐이 발생할 수 있습니다.
  3. 자금 관리 위험: 고정점 스톱 손실은 높은 변동성 중 과도한 손실을 초래할 수 있습니다.
  4. 신호 지연: TEMA 지표는 고유 한 지연을 가지고 있으며 최적의 입구 지점을 놓칠 수 있습니다.
  5. 매개 변수 민감도: 최적 매개 변수는 다른 시장 환경에서 크게 다릅니다.

전략 최적화

  1. 시장 환경 인식 추가: 매개 변수 적응을 위한 트렌드 강도 지표를 포함
  2. 스톱 로스 최적화: ATR 기반 동적 스톱 로스 구현을 고려
  3. 포지션 크기를 개선: 트렌드 강도에 따라 포지션 크기를 동적으로 조정
  4. 강화된 경보 시스템: 주요 가격 수준에서 조기 경보 신호를 구현
  5. 부피 분석을 포함: 부피 표시기와 신호 유효성을 확인

요약

이 전략은 TEMA 크로스오버를 통해 트렌드를 포착하고 동적 스톱 로스로 위험을 관리하는 포괄적인 트렌드 추적 시스템이다. 전략 논리는 명확하고, 구현은 간단하며, 좋은 실용성을 보여준다. 그러나 라이브 트레이딩을 할 때 시장 환경 식별과 위험 통제에 주의를 기울여야 한다. 백테스팅 검증 후 실제 시장 조건에 기반한 매개 변수를 최적화하는 것이 좋습니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("TEMA Strategy for Gold", overlay=true)

// Inputs
tema_short_length = input.int(300, title="Short TEMA Length")
tema_long_length = input.int(500, title="Long TEMA Length")
pip_value = input.float(0.10, title="Pip Value (10 pips = 1 point for Gold)")

// Calculate TEMA
tema_short = ta.ema(2 * ta.ema(close, tema_short_length) - ta.ema(ta.ema(close, tema_short_length), tema_short_length), tema_short_length)
tema_long = ta.ema(2 * ta.ema(close, tema_long_length) - ta.ema(ta.ema(close, tema_long_length), tema_long_length), tema_long_length)

// Plot TEMA
plot(tema_short, color=color.blue, title="300 TEMA")
plot(tema_long, color=color.red, title="500 TEMA")

// Crossover conditions
long_condition = ta.crossover(tema_short, tema_long)
short_condition = ta.crossunder(tema_short, tema_long)

// Calculate recent swing high/low
swing_low = ta.lowest(low, 10)
swing_high = ta.highest(high, 10)

// Convert pips to price
pip_adjustment = pip_value * syminfo.mintick

// Long entry logic
if (long_condition and strategy.position_size == 0)
    stop_loss_long = swing_low - pip_adjustment
    strategy.entry("Long", strategy.long)
    label.new(bar_index, swing_low, style=label.style_label_down, text="Buy", color=color.green)

// Short entry logic
if (short_condition and strategy.position_size == 0)
    stop_loss_short = swing_high + pip_adjustment
    strategy.entry("Short", strategy.short)
    label.new(bar_index, swing_high, style=label.style_label_up, text="Sell", color=color.red)

// Exit logic
if (strategy.position_size > 0 and short_condition)
    strategy.close("Long")
    label.new(bar_index, high, style=label.style_label_up, text="Exit Long", color=color.red)

if (strategy.position_size < 0 and long_condition)
    strategy.close("Short")
    label.new(bar_index, low, style=label.style_label_down, text="Exit Short", color=color.green)


관련

더 많은