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

스마트 R2R 기반의 스톱 로스 관리와 함께 트리플 EMA 크로스오버 거래 시스템

저자:차오장, 날짜: 2025-01-06 16:53:36
태그:EMAR2R

img

전반적인 설명

이 시스템은 트리플 익스포넌셜 모빙어워드 (EMA) 크로스오버 신호를 기반으로 트렌드를 따르는 거래 시스템입니다. 이 시스템은 EMA8, EMA21, EMA89를 결합하여 크로스오버를 통해 거래 신호를 생성하고 리스크와 리워드 비율에 기반한 스마트 스톱 로스 관리를 통합하여 자동화된 리스크 관리를 달성합니다.

전략 원칙

시스템은 다음의 핵심 기능 모듈로 구성됩니다.

  1. 신호 생성 모듈: 빠른 EMA8와 중간 EMA21 사이의 교차를 사용하여 거래 방향을 결정하고 주요 트렌드를 확인하기 위해 가격이 느린 EMA89 이상 또는 아래에 있어야합니다.
  2. 트레이드 실행 모듈: 장기 또는 짧은 조건이 충족되면 자동으로 포지션을 열고 초기 스톱 로스 및 영업 수치를 설정합니다.
  3. 리스크 관리 모듈: 가격 변동이 1: 1 리스크/이익 비율에 도달하면 자동으로 스톱 로스를 브레이크 이븐으로 이동하여 위험 없는 수익을 보장합니다.
  4. 시각화 모듈: 그래프에 세 개의 EMA, 입점점 및 중지 손실 움직임 마커를 표시합니다.

전략적 장점

  1. 다중 시간 프레임 검증: 다른 기간의 세 개의 EMA를 통해 트렌드를 확인하고 거래 신뢰성을 향상시킵니다.
  2. 스마트 리스크 매니지먼트: 리스크/이익 비율에 기반한 스톱 로스 메커니즘은 수익을 보호하면서 유출을 줄인다.
  3. 높은 자동화: 신호 생성에서 위치 관리까지 완전히 자동화 된 프로세스, 인간의 개입을 줄이십시오.
  4. 조정 가능한 매개 변수: EMA 기간과 스톱-러스 비율과 같은 주요 매개 변수는 다른 시장 특성에 최적화 될 수 있습니다.

전략 위험

  1. 부진 시장 위험: 부진 시장에서 빈번한 잘못된 브레이크 신호를 생성할 수 있습니다.
  2. 슬라이드 리스크: 스톱 로스 실행은 빠르게 변화하는 시장에서 슬라이드 리스크가 발생할 수 있습니다.
  3. 시스템적 위험: 급격한 시장 움직임은 스톱 손실을 효과적이지 않게 할 수 있습니다. 해결책:
  • 트렌드 필터를 추가하여 불안한 시장을 식별합니다.
  • 합리적인 스톱 로스 버퍼를 설정합니다.
  • 변동성 적응 메커니즘을 구현

전략 최적화 방향

  1. 부피 표시를 포함: 신호 품질을 향상시키기 위해 EMA 크로스오버 신호에 부피 확인을 추가하십시오.
  2. 동적 스톱 로스 개발: 전략 적응력을 높이기 위해 시장 변동성에 따라 스톱 로스 거리를 조정
  3. 절감 메커니즘을 최적화: 더 많은 잠재적인 이익을 얻기 위해 목표 R2R에 도달 한 후 후속 중단을 구현하십시오.
  4. 시장 환경 필터 추가: 다른 시장 조건에서 전략 매개 변수를 조정하기 위해 트렌드 강도 지표를 설계

요약

이 전략은 고전적인 EMA 크로스오버 시스템을 현대적인 리스크 관리 방법과 결합하여 완전한 트렌드-추천 거래 시스템을 달성합니다. 이 시스템의 강점은 신뢰할 수있는 신호 생성 메커니즘과 지능적인 리스크 제어 방법, 그러나 매개 변수는 여전히 최적화되어야하며 실제 응용 분야에서 특정 시장 특성에 따라 기능을 확장해야합니다. 지속적인 개선과 최적화를 통해 전략은 다양한 시장 조건에서 안정적인 성능을 유지할 수 있습니다.


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

//@version=5
strategy("EMA Crossover with SL to BE", shorttitle="OmegaGalsky", overlay=true)

// Входни параметри
ema8_period = input.int(8, title="EMA 8 Period")
ema21_period = input.int(21, title="EMA 21 Period")
ema89_period = input.int(89, title="EMA 89 Period")
fixed_risk_reward = input.float(1.0, title="Risk/Reward Ratio (R2R)")
sl_percentage = input.float(0.001, title="Stop Loss Percentage", step=0.0001)
tp_percentage = input.float(0.0025, title="Take Profit Percentage", step=0.0001)

// Изчисляване на EMA
ema8 = ta.ema(close, ema8_period)
ema21 = ta.ema(close, ema21_period)
ema89 = ta.ema(close, ema89_period)

// Условия за BUY
buy_condition = ta.crossover(ema8, ema21) and close > ema89 and close > open

// Условия за SELL
sell_condition = ta.crossunder(ema8, ema21) and close < ema89 and close < open

// Вход в BUY позиция
if (buy_condition)
    stop_loss = close * (1 - sl_percentage)
    take_profit = close * (1 + tp_percentage)
    strategy.entry("BUY", strategy.long)
    strategy.exit("TP/SL", from_entry="BUY", stop=stop_loss, limit=take_profit)

// Вход в SELL позиция
if (sell_condition)
    stop_loss = close * (1 + sl_percentage)
    take_profit = close * (1 - tp_percentage)
    strategy.entry("SELL", strategy.short)
    strategy.exit("TP/SL", from_entry="SELL", stop=stop_loss, limit=take_profit)

// Логика за преместване на стоп към BE
if (strategy.position_size > 0)
    entry_price = strategy.position_avg_price
    // За LONG позиция
    if (strategy.position_size > 0 and high  >= entry_price + (entry_price * sl_percentage * fixed_risk_reward))
        strategy.exit("SL to BE", from_entry="BUY", stop=entry_price)
        label.new(bar_index, high, "SL moved to BE", color=color.green)
    // За SHORT позиция
    if (strategy.position_size < 0 and low <= entry_price - (entry_price * sl_percentage * fixed_risk_reward))
        strategy.exit("SL to BE", from_entry="SELL", stop=entry_price)
        label.new(bar_index, low, "SL moved to BE", color=color.red)

// Чертеж на EMA
plot(ema8, color=color.orange, title="EMA 8")
plot(ema21, color=color.blue, title="EMA 21")
plot(ema89, color=color.purple, title="EMA 89")


관련

더 많은