이 전략은 지수 이동 평균 (EMA), 볼륨 확인 및 평균 진정한 범위 (ATR) 를 결합한 고급 양적 거래 전략입니다. 이 전략은 여러 기술적 지표를 통해 정확한 시장 트렌드 포착을 달성하고, 볼륨 확인을 통해 거래 신뢰성을 향상시키고, 동적인 ATR 기반의 스톱 로스 및 영업 수준을 사용하여 포괄적인 리스크 관리 시스템을 구현합니다.
핵심 논리는 세 가지 주요 구성 요소로 구성됩니다. 1. 트렌드 결정: EMA ((50) 를 주요 트렌드 지표로 사용합니다. 가격이 EMA 이상일 때 상승 추세가 확인되며 그 반대의 경우입니다. 부피 확증: 20 기간 부피 이동 평균을 계산하여 현재의 부피가 이동 평균의 1.5배와 이전 기간의 부피를 모두 초과해야 충분한 시장 참여를 보장합니다. 3. 위험 관리: 14 기간 ATR을 기반으로 동적으로 스톱 로스 및 영업 수익 수준을 설정합니다. 스톱 로스는 2x ATR로 설정되고 영업 수익은 3x ATR로 설정되어 자본 보호와 트렌드 개발 잠재력을 균형있게합니다.
이 전략은 여러 가지 기술 지표를 포괄적으로 사용하여 논리적으로 엄격한 거래 시스템을 구축합니다. 그것의 핵심 강점은 여러 가지 확인 메커니즘과 동적인 위험 관리에 있습니다. 반면 트렌드 역전 및 잘못된 볼륨 브레이크업과 같은 위험에주의를 기울여야합니다. 지속적인 최적화와 정교화를 통해이 전략은 실제 거래에서 향상된 성능을 약속합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Enhanced Volume + Trend Strategy", overlay=true) // Inputs emaLength = input.int(50, title="EMA Length") atrLength = input.int(14, title="ATR Length") atrMultiplierSL = input.float(2.0, title="ATR Multiplier for Stop Loss") atrMultiplierTP = input.float(3.0, title="ATR Multiplier for Take Profit") volLength = input.int(20, title="Volume Moving Average Length") volMultiplier = input.float(1.5, title="Volume Multiplier (Relative to Previous Volume)") // Trend Detection using EMA ema = ta.ema(close, emaLength) // ATR Calculation for Stop Loss/Take Profit atr = ta.atr(atrLength) // Volume Moving Average volMA = ta.sma(volume, volLength) // Additional Volume Condition (Current Volume > Previous Volume + Multiplier) volCondition = volume > volMA * volMultiplier and volume > volume[1] // Entry Conditions based on Trend (EMA) and Volume (Volume Moving Average) longCondition = close > ema and volCondition shortCondition = close < ema and volCondition // Stop Loss and Take Profit Levels longStopLoss = close - (atr * atrMultiplierSL) longTakeProfit = close + (atr * atrMultiplierTP) shortStopLoss = close + (atr * atrMultiplierSL) shortTakeProfit = close - (atr * atrMultiplierTP) // Strategy Execution if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLoss, limit=longTakeProfit) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit/Stop Loss", "Short", stop=shortStopLoss, limit=shortTakeProfit) // Plotting EMA plot(ema, color=color.yellow, title="EMA") // Plot Volume Moving Average plot(volMA, color=color.blue, title="Volume Moving Average") // Signal Visualizations plotshape(series=longCondition, color=color.green, style=shape.labelup, location=location.belowbar, title="Buy Signal") plotshape(series=shortCondition, color=color.red, style=shape.labeldown, location=location.abovebar, title="Sell Signal")