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

동적 이동 평균 크로스오버 트렌드 ATR 리스크 관리 시스템과 전략에 따라

저자:차오장, 날짜: 2025-01-06 16:27:18
태그:SMAATRMAEMAML

img

전반적인 설명

이 전략은 이동 평균 크로스오버 신호를 ATR 기반 리스크 관리와 결합한 트렌드 다음 거래 시스템이다. 이 전략은 빠른 및 느린 이동 평균의 크로스오버를 통해 시장 트렌드를 캡처하고 ATR 지표를 사용하여 스톱 로스 및 테이크 노프프 레벨을 동적으로 조정하여 거래 리스크의 정확한 통제를 달성합니다. 이 전략에는 또한 계좌 자본 및 미리 설정된 리스크 매개 변수에 따라 위치 크기를 자동으로 조정하는 돈 관리 모듈이 포함되어 있습니다.

전략 원칙

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

  1. 트렌드 식별 시스템 - 트렌드 방향을 결정하기 위해 10 기간 및 50 기간 단순 이동 평균 (SMA) 의 교차를 사용합니다. 빠른 MA가 느린 MA 위에 넘어가면 긴 신호가 생성되며, 아래에 넘어가면 짧은 신호가 생성됩니다.
  2. 리스크 관리 시스템 - 동적 스톱 로스 및 영업 타겟을 설정하기 위해 14 기간 ATR 지표를 1.5로 곱합니다. 이 방법은 시장 변동성에 따라 리스크 제어 매개 변수를 자동으로 조정합니다.
  3. 자금 관리 시스템 - 각 거래에 사용되는 자본의 양을 제어하여 위험 용도 (2%) 및 자본 할당 (100%) 를 설정하여 재원의 합리적인 사용을 보장합니다.

전략적 장점

  1. 강력한 적응력 - ATR을 통해 스톱 로스 및 수익을 취하는 수준을 동적으로 조정하여 전략이 다른 시장 환경에 적응 할 수 있습니다.
  2. 종합적인 위험 관리 - 비율 기반의 위험 관리와 동적 ATR 정지 기능을 결합하여 이중 위험 보호 메커니즘을 형성합니다.
  3. 명확한 운영 규칙 - 진입 및 출입 조건이 명확하여 실행 및 백테스팅을 용이하게합니다.
  4. 과학적인 자금 관리 - 비례적 할당 메커니즘을 통해 거래 당 통제 가능한 위험을 보장합니다.

전략 위험

  1. 부진된 시장 위험 - 옆 시장에서 빈번한 MA 크로스오버는 연속 손실로 이어질 수 있습니다.
  2. 미끄러짐 위험 - 급격한 시장 움직임 중 실제 실행 가격은 신호 가격과 크게 다를 수 있습니다.
  3. 자본 효율성 위험 - 100% 자본 할당은 자금의 덜 유연한 사용으로 이어질 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터를 추가 - ADX와 같은 트렌드 강도 지표를 추가하여 강한 트렌드에서만 거래를 수행 할 수 있습니다.
  2. MA 매개 변수를 최적화 - 최적의 이동 평균 기간 조합을 찾기 위해 역사적 데이터를 테스트 할 수 있습니다.
  3. 자금 관리 개선 - 계좌 성과에 따라 거래 크기를 자동으로 조정하기 위해 동적 위치 크기 메커니즘을 추가하는 것이 좋습니다.
  4. 시장 환경 필터를 추가 - 적절한 시장 조건에서만 거래에 변동성 지표를 추가 할 수 있습니다.

요약

이 전략은 MA 크로스오버를 통해 트렌드를 포착하고 ATR 동적 리스크 컨트롤을 결합하여 트레이딩 시스템을 따르는 완전한 트렌드를 만듭니다. 전략의 강점은 적응력과 리스크 제어 능력에 속하지만 불안정한 시장에서 저성공할 수 있습니다. 트렌드 필터와 돈 관리 시스템의 최적화를 추가함으로써 전략의 전반적인 성능이 향상될 수 있습니다.


/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © davisash666

//@version=5
strategy("Trend-Following Strategy", overlay=true)

// Inputs for strategy parameters
timeframe = input.timeframe("D", "Timeframe")
risk_tolerance = input.float(2.0, "Risk Tolerance (%)", step=0.1) / 100
capital_allocation = input.float(200, "Capital Allocation (%)", step=1) / 100

// Technical indicators (used to emulate machine learning)
ma_length_fast = input.int(10, "Fast MA Length")
ma_length_slow = input.int(50, "Slow MA Length")
atr_length = input.int(14, "ATR Length")
atr_multiplier = input.float(1.5, "ATR Multiplier")

// Calculations
fast_ma = ta.sma(close, ma_length_fast)
slow_ma = ta.sma(close, ma_length_slow)
atr = ta.atr(atr_length)

// Entry and exit conditions
long_condition = ta.crossover(fast_ma, slow_ma)
short_condition = ta.crossunder(fast_ma, slow_ma)

// Risk management
stop_loss_long = close - (atr * atr_multiplier)
stop_loss_short = close + (atr * atr_multiplier)
take_profit_long = close + (atr * atr_multiplier)
take_profit_short = close - (atr * atr_multiplier)

// Capital allocation
position_size = strategy.equity * capital_allocation

// Execute trades
if long_condition
    strategy.entry("Long", strategy.long, qty=position_size / close)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_long, limit=take_profit_long)

if short_condition
    strategy.entry("Short", strategy.short, qty=position_size / close)
    strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_short, limit=take_profit_short)

// Plotting for visualization
plot(fast_ma, color=color.green, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")
plot(stop_loss_long, color=color.blue, title="Stop Loss (Long)", linewidth=1, style=plot.style_cross)
plot(take_profit_long, color=color.purple, title="Take Profit (Long)", linewidth=1, style=plot.style_cross)


관련

더 많은