이 전략은 통합된 위험 관리 기능과 함께 이중 이동 평균 크로스오버 이론을 기반으로 한 자동화 거래 시스템입니다. 핵심 전략은 신호 지표로 21 기간 및 50 기간 기하급수적 이동 평균 (EMA) 을 활용하며, 자동으로 크로스오버 포인트에 기반한 거래를 실행하며 위험 통제를 위해 스톱 로스 및 취리 메커니즘을 통합합니다.
핵심 논리는 기술 분석의 고전적인 이동 평균 크로스오버 이론에 기반합니다. 단기 (21-기기) EMA가 장기 (50-기기) EMA를 넘을 때 상승 신호를 생성하고 장기 EMA를 넘을 때 긴 위치에 진입합니다. 단기 EMA가 장기 EMA를 넘을 때 하락 신호를 생성하고 짧은 위치에 진입합니다. 각 거래 신호는 자동으로 스톱 로스를 설정하고 수익을 취합니다. 스톱 로스를 위해 40 틱과 수익을 취하기 위해 80 틱의 기본 설정이 있습니다. 이 디자인은 전문 거래 관리 원칙을 준수하여 1:2 위험 보상 비율을 보장합니다.
이것은 명확한 논리를 가진 잘 설계된 자동화 거래 전략이다. 이동 평균 크로스오버 신호를 엄격한 위험 관리와 결합함으로써 전략은 거래 안전을 보장하면서 시장 트렌드를 포착하기위한 신뢰할 수있는 기술적 프레임워크를 제공합니다. 최적화 할 여지가 있지만 전략의 기초는 완전하고 양적 거래 시스템에서 추가 개발 및 정화를위한 기본 모듈로 적합합니다.
/*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")