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

이중 EMA 크로스오버 및 리스크 관리와 함께 자동화된 양적 거래 시스템

저자:차오장, 날짜: 2024-11-29 11:20:40
태그:EMASLTPMA

img

전반적인 설명

이 전략은 통합된 위험 관리 기능과 함께 이중 이동 평균 크로스오버 이론을 기반으로 한 자동화 거래 시스템입니다. 핵심 전략은 신호 지표로 21 기간 및 50 기간 기하급수적 이동 평균 (EMA) 을 활용하며, 자동으로 크로스오버 포인트에 기반한 거래를 실행하며 위험 통제를 위해 스톱 로스 및 취리 메커니즘을 통합합니다.

전략 원칙

핵심 논리는 기술 분석의 고전적인 이동 평균 크로스오버 이론에 기반합니다. 단기 (21-기기) EMA가 장기 (50-기기) EMA를 넘을 때 상승 신호를 생성하고 장기 EMA를 넘을 때 긴 위치에 진입합니다. 단기 EMA가 장기 EMA를 넘을 때 하락 신호를 생성하고 짧은 위치에 진입합니다. 각 거래 신호는 자동으로 스톱 로스를 설정하고 수익을 취합니다. 스톱 로스를 위해 40 틱과 수익을 취하기 위해 80 틱의 기본 설정이 있습니다. 이 디자인은 전문 거래 관리 원칙을 준수하여 1:2 위험 보상 비율을 보장합니다.

전략적 장점

  1. 높은 자동화: 시스템은 신호 검출에서 거래 실행 및 위험 관리까지 완전히 자동화되어 작동합니다.
  2. 포괄적 인 리스크 관리: 모든 거래는 효과적인 리스크 통제를 위해 명확한 스톱 로스 및 수익 수준을 가지고 있습니다.
  3. 조정 가능한 매개 변수: 스톱 로스 및 영업 수익 수준은 다른 시장 조건에 따라 유연하게 조정할 수 있습니다.
  4. 명확한 시각적 피드백: 시스템은 화살표로 구매/판매 신호를 표시하고 점선으로 스톱 로스/프로프트 레벨을 표시합니다.
  5. 간단한 전략 논리: 클래식 기술 지표를 사용, 이해하기 쉽고 유지

전략 위험

  1. 시장 위험: 범위를 제한하는 시장에서 빈번한 잘못된 신호를 생성할 수 있습니다.
  2. 미끄러짐 위험: 높은 변동성 중 실제 실행 가격은 신호 가격과 다를 수 있습니다.
  3. 트렌드 역전 위험: 급격한 시장 역전 시 고정 스톱 로스 수준은 불충분할 수 있습니다.
  4. 매개 변수 최적화 위험: 과도한 최적화가 실전 성능에 영향을 미치는 과도한 적합성으로 이어질 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터 추가: ADX 또는 트렌드 강도 지표와 같은 추가 트렌드 식별 지표를 포함 거짓 신호를 필터
  2. 동적 스톱 로스 메커니즘: 시장 변동성에 따라 자동으로 스톱 로스 및 수익 수준을 조정합니다.
  3. 시간 필터를 추가하십시오. 주요 뉴스 발표와 같은 높은 변동성 기간 동안 거래를 피하십시오.
  4. 포지션 크기를 구현합니다. 시장 변동성과 계정 위험을 기반으로 자동으로 포지션 크기를 조정합니다.
  5. 신호 확증 강화: 신호 신뢰성을 향상시키기 위해 볼륨 및 기타 보조 지표를 추가합니다.

요약

이것은 명확한 논리를 가진 잘 설계된 자동화 거래 전략이다. 이동 평균 크로스오버 신호를 엄격한 위험 관리와 결합함으로써 전략은 거래 안전을 보장하면서 시장 트렌드를 포착하기위한 신뢰할 수있는 기술적 프레임워크를 제공합니다. 최적화 할 여지가 있지만 전략의 기초는 완전하고 양적 거래 시스템에서 추가 개발 및 정화를위한 기본 모듈로 적합합니다.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy with SL & TP", overlay=true, default_qty_type=strategy.percent_of_equity)

// Input settings for SL and TP (ticks)
slTicks = input.int(40, title="Stop Loss (ticks)", minval=1)
tpTicks = input.int(80, title="Take Profit (ticks)", minval=1)

// Define EMA periods
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)

// Detect crossovers
bullishCross = ta.crossover(ema21, ema50)
bearishCross = ta.crossunder(ema21, ema50)

// Plot the EMAs
plot(ema21, color=color.green, linewidth=2, title="EMA 21")
plot(ema50, color=color.red, linewidth=2, title="EMA 50")

// Calculate tick size in points
var float tickSize = syminfo.mintick

// Calculate stop loss and take profit prices for long and short positions
longSL = close - slTicks * tickSize
longTP = close + tpTicks * tickSize

shortSL = close + slTicks * tickSize
shortTP = close - tpTicks * tickSize

// Execute trades on crossover signals
if (bullishCross)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP)

if (bearishCross)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP)

// Plot arrows on crossovers
plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)

// Optional: Background coloring
bgcolor(bullishCross ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(bearishCross ? color.new(color.red, 90) : na, title="Bearish Background")


관련

더 많은