동적 ATR 돌파 이동 평균 교차 전략: 가격 모멘텀과 변동성을 기반으로 한 MYM 선물 거래 시스템

EMA ATR MYM 期货交易 交叉策略 波动率 动态风险管理 均线系统 突破交易 趋势跟踪
생성 날짜: 2025-07-17 15:22:47 마지막으로 수정됨: 2025-07-17 15:22:47
복사: 0 클릭수: 265
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

동적 ATR 돌파 이동 평균 교차 전략: 가격 모멘텀과 변동성을 기반으로 한 MYM 선물 거래 시스템 동적 ATR 돌파 이동 평균 교차 전략: 가격 모멘텀과 변동성을 기반으로 한 MYM 선물 거래 시스템

개요

동적 ATR 돌파평균선 교차전략은 기술 지표와 변동률 측정을 결합한 트렌드 추적 시스템으로, 선물 시장을 위해 특별히 설계되었다. 이 전략은 빠른 및 느린 지수 이동 평균 (EMA) 의 교차점을 사용하여 시장 트렌드 방향을 결정하고, 평균 실제 범위 (ATR) 와 결합하여 동적으로 스톱 손실 및 스톱 레벨을 설정하여 시장 변동성에 대한 변화에 적응한다. 전략의 핵심은 트렌드의 초기 단계에서 시작되며, 현재 시장의 변동성에 기반한 위험 관리 조치를 통해 자금을 보호한다.

전략 원칙

이 전략의 핵심 거래 논리는 두 개의 다른 주기에서 지수 이동 평균을 기반으로 합니다:

  • 빠른 EMA ((9주기)
  • 느린 EMA ((21주기)

빠른 EMA가 아래에서 느린 EMA를 통과할 때, 시스템은 구매 신호를 생성하고 다중 포지션에 진입한다. 빠른 EMA가 위에서 느린 EMA를 통과할 때, 시스템은 판매 신호를 생성하고 공백 포지션에 진입한다. 이러한 교차 신호는 시장 동력의 변화와 잠재적인 트렌드 전환의 지표로 널리 알려져 있다.

이 전략의 특징은 위험 관리 프레임워크입니다.

  1. 14주기 ATR을 사용하여 시장의 변동성을 정량화한다.
  2. 동적으로 계산한 스톱로스 위치: 현재 가격 빼기 (또는 더하기) ATR 곱하기 1.5의 배수
  3. 동적으로 계산한 정지 위치: 현재 가격 더하기 (또는 빼기) ATR 곱하기 3.0의 배수
  4. 매 거래 리스크는 계좌 자금의 2%를 통제합니다.

이 디자인은 위험 관리 매개 변수가 시장의 변동성에 따라 자동으로 조정되는 것을 보장하며, 변동성이 증가할 때 더 넓은 중지, 변동성이 감소할 때 더 긴밀한 중지.

전략적 이점

  1. 적응력: ATR에 연계된 스톱 및 스톱 레벨을 통해 전략은 시장 조건에 따라 적응할 수 있으며, 높은 변동 동안 스톱으로 인해 너무 긴축되는 것을 피할 수 있으며, 낮은 변동 동안 합리적인 위험 통제를 유지할 수 있습니다.

  2. 위험과 수익률의 최적화이 전략은 스톱을 스톱로즈의 두 배로 설정하고, 좋은 리스크/이익 비율을 보장하여 장기적으로 긍정적인 기대치를 달성하는 데 도움이 됩니다.

  3. 명확하게 실행트레이딩 신호는 명확하고 주관적인 판단의 여지가 없으며, 전략이 쉽게 따라와 자동화됩니다.

  4. 위험 통제거래당 리스크는 계좌 자금의 2%로 제한되며, 전문적인 자금 관리 원칙에 부합합니다.

  5. 유연한 재무 관리이 전략은 고정된 계약 수보다는 비율의 위험 모형을 사용함으로써, 계정 규모가 변함에 따라 리스크 이 적절하게 조정되도록 합니다.

  6. 투명하게 작동하는 논리모든 거래 조건, 입시점, 출구점이 명확하게 정의되어 있으며, 전략 검토와 최적화를 위한 블랙박스 요소가 없습니다.

전략적 위험

  1. 가짜 침입 위험: 평선 교차 전략은 시장의 소음과 가짜 돌파구에 영향을 받기 쉽다. 특히 수평적으로 정리되는 시장에서. 이 경우, 작은 손실을 입는 거래가 발생하여 계좌 자금을 먹어치울 수 있습니다.

  2. 슬라이드 포인트와 실행 위험: 높은 변동성 시장에서 실제 실행 가격은 신호 생성 시의 가격과 현저하게 차이가 있을 수 있으며, 전략의 실제 성과에 영향을 미칩니다.

  3. 매개변수 민감도: 전략 성능은 선택된 EMA 주기 및 ATR 곱수에 크게 의존한다. 다른 시장 환경은 다른 파라미터 설정을 필요로 할 수 있으며, 과도한 적합성의 위험이 증가한다.

  4. 트렌드 시장 의존이 전략은 명백한 추세 시장에서 가장 잘 작동하지만, 흔들리는 시장에서는 좋지 않을 수 있으며, 이로 인해 지속적인 손실이 발생할 수 있습니다.

  5. 너무 넓은 위험높은 변동성 환경에서 ATR 기반의 정지는 지나치게 넓어질 수 있으며, 단편 거래의 잠재적인 손실이 증가할 수 있습니다.

이러한 위험을 줄이기 위해 다음과 같이 권장합니다.

  • 거래 시간 제한이나 트렌드 강도 확인과 같은 추가 필터를 적용합니다.
  • 사용 시간 퇴출을 고려하거나 손익 대비 퇴출
  • 최적의 변수 조합을 결정하기 위해 광범위한 재검토를 수행합니다.
  • 과도한 거래 또는 불리한 시장 조건을 방지하기 위해 최대 손실 제한을 적용합니다.

전략 최적화 방향

  1. 트렌드 필터 추가: 통합 트렌드 강도 지표 ((ADX 또는 방향 운동 지표와 같은), 강한 트렌드 환경에서만 거래한다. 구현 방법은 다음과 같은 코드를 추가하는 것입니다.
adx = ta.dmi(14, 14)
strong_trend = adx > 25
longCondition = longCondition and strong_trend
shortCondition = shortCondition and strong_trend
  1. 입학 시점을 최적화: RSI 또는 무작위 지표와 같은 추가 확증 지표를 추가하는 것을 고려하여 가짜 신호를 줄이십시오. 이것은 특정 지역 또는 지표가 과매매 / 과매매 조건을 표시 할 때만 거래하도록 요구함으로써 가능합니다.

  2. 동적으로 조정된 위험 변수: 시장의 변동성이나 최근의 거래 성과를 기반으로, 동적으로 리스크 비율을 조정한다. 예를 들어, 연속적인 손실 후 위험을 낮추고, 수익 기간 동안 위험을 증가시킨다.

  3. 시간 필터를 추가: 특정 시장 시간에 거래하는 것을 제한하고, 특히 선물 시장에 대한 낮은 유동성 또는 높은 변동성의 시간을 피하십시오.

  4. 수익의 일부전략의 수정: ATR 1배를 달성하면 절반의 포지션을 제거하고 나머지 포지션을 ATR 3배의 목표에 실행하도록하는 등 포지션의 분할을 허용하는 전략의 수정

  5. 스톱 손실 추적 기능 추가: ATR 기반의 트래킹 스톱을 구현하여 수익을 잠금하고 트렌드가 충분히 발전할 수 있도록 한다. 이것은 다음과 같은 방법으로 이루어질 수 있다:

if (strategy.position_size > 0)
    strategy.exit("Trailing Stop", from_entry="Long", trail_points=atr*1.0, trail_offset=atr*2.0)

요약하다

동적 ATR 돌파평선 교차 전략은 트렌드 추적의 기본 원칙과 동적 리스크 관리를 결합한 균형 잡힌 거래 방식을 나타냅니다. 이 전략은 9주기 및 21주기 EMA 교차점을 활용하여 잠재적인 트렌드 변화를 식별하고 ATR과 연결된 스톱 및 스톱 레벨을 통해 위험과 수익을 관리합니다.

이 전략의 주요 장점은 다양한 시장 환경에서 일관된 위험 관리를 할 수 있는 자율성과 규율성입니다. 그러나 모든 거래 시스템과 마찬가지로, 특히 비 트렌드 시장에서 가짜 돌파구와 시장 소음의 도전에 직면합니다.

트렌드 필터를 추가하고, 입시 확인을 최적화하고, 일부 수익을 달성하거나, 손실을 추적하는 등의 권장된 최적화 조치를 시행함으로써, 거래자는 전략의 성능과 안정성을 더욱 향상시킬 수 있습니다. 무엇보다도, 모든 전략은 실제 거래 환경에서 실행될 수 있는지 확인하기 위해 실행되기 전에 철저한 재검토와 전향 테스트를 수행해야합니다.

어떤 거래 전략을 사용하든, 성공의 열쇠는 항상 엄격한 위험 관리, 감정 통제 및 지속적인 전략 개선에 있습니다. 동적 ATR 돌파 평행선 크로스 전략은 거래자가 자신의 위험 수용 능력과 거래 목표에 맞는 개인화 된 거래 시스템을 구축 할 수있는 견고한 기반을 제공합니다.

전략 소스 코드
/*backtest
start: 2024-07-17 00:00:00
end: 2025-07-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/

//@version=5
strategy("MYM Futures Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === Settings ===
risk_pct = input.float(2, title="Risk % per Trade", minval=0.1, maxval=10)
sl_atr_mult = input.float(1.5, title="SL ATR Multiplier", minval=0.1)
tp_atr_mult = input.float(3.0, title="TP ATR Multiplier", minval=0.1)
atr_length = input.int(14, title="ATR Length")

// === Indicators ===
fast = ta.ema(close, 9)
slow = ta.ema(close, 21)
atr = ta.atr(atr_length)

// === Trade Conditions ===
longCondition = ta.crossover(fast, slow)
shortCondition = ta.crossunder(fast, slow)

// === SL/TP Calculations ===
long_sl = close - (sl_atr_mult * atr)
long_tp = close + (tp_atr_mult * atr)
short_sl = close + (sl_atr_mult * atr)
short_tp = close - (tp_atr_mult * atr)

// === Entry Logic ===
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", from_entry="Long", stop=long_sl, limit=long_tp)
    alert("BUY", alert.freq_once_per_bar)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", from_entry="Short", stop=short_sl, limit=short_tp)
    alert("SELL", alert.freq_once_per_bar)

// === Plotting ===
plot(fast, color=color.blue)
plot(slow, color=color.orange)
plot(long_sl, title="Long SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(long_tp, title="Long TP", color=color.green, style=plot.style_linebr, linewidth=1)