이 전략은 여러 기술적 지표 동기화에 기반을 둔 트렌드 역전 거래 시스템으로, 주로 5분 시간 프레임에서 단기 거래를 위해 설계되었습니다. 이 전략은 높은 유동성 세션 중 거래에 특히 적합하며, 단기 시장 역전 기회를 효과적으로 포착 할 수 있습니다.
이 전략의 핵심 논리는 다음의 핵심 요소에 기반합니다. 1. 반전 신호 탐지: 역사적인 최고와 최저와 가격 관계를 분석하여 잠재적 인 반전 패턴을 식별하기 위해 룩백 기간 (예정 12 기간) 을 사용합니다. 트렌드 확인: SMA, EMA, WMA 및 VWMA를 포함한 다양한 이동 평균 지표를 통합하여 사용자가 다른 시장 조건에 가장 적합한 평균 유형을 선택할 수 있습니다. 3. 볼륨 검증: 현재 볼륨과 20주기 볼륨 평균을 비교하여 반전 신호를 확인합니다. 4. 리스크 관리: ATR 지표에 기초하여 스톱 로스 및 수익 목표를 동적으로 조정하며, 기본 스톱 로스 범위로 1.5x ATR 및 수익 목표로 2x 스톱 로스를 사용합니다.
이 전략은 다중 지표 협력을 통해 신뢰할 수있는 반전 신호 식별 및 위험 통제를 달성하는 잘 설계된 단기 거래 시스템입니다. 이 전략의 장점은 유연한 구성 옵션과 포괄적인 위험 관리 메커니즘에 있습니다. 그러나 거래자는 매개 변수 설정을 철저히 최적화하고 적절한 시장 환경에서 사용해야합니다. 지속적인 최적화와 개선으로이 전략은 안정적인 단기 거래 도구가 될 가능성이 있습니다.
/*backtest start: 2024-01-17 00:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Reversal Signals Strategy [AlgoAlpha]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Inputs group_strategy = "Strategy Settings" riskRewardRatio = input.float(2.0, "Risk-Reward Ratio", tooltip="Take Profit is Risk-Reward times Stop Loss", group=group_strategy) stopLossATRMultiplier = input.float(1.5, "Stop Loss ATR Multiplier", tooltip="Multiplier for ATR-based stop loss", group=group_strategy) // Reversal Signal Detection (from previous script) group_reversal = "Reversal Detection Settings" lookbackPeriod = input.int(12, "Candle Lookback", group=group_reversal) confirmationPeriod = input.int(3, "Confirm Within", group=group_reversal) enableVolumeConfirmation = input.bool(true, "Use Volume Confirmation", group=group_reversal) group_trend = "Trend Settings" trendMAPeriod = input.int(50, "Trend MA Period", group=group_trend) trendMAType = input.string("EMA", "MA Type", options=["SMA", "EMA", "WMA", "VWMA"], group=group_trend) group_appearance = "Appearance" bullColor = input.color(#00ffbb, "Bullish Color", group=group_appearance) bearColor = input.color(#ff1100, "Bearish Color", group=group_appearance) // Moving Average Selection ma_current = switch trendMAType "SMA" => ta.sma(close, trendMAPeriod) "EMA" => ta.ema(close, trendMAPeriod) "WMA" => ta.wma(close, trendMAPeriod) "VWMA" => ta.vwma(close, trendMAPeriod) // Volume Confirmation volumeIsHigh = volume > ta.sma(volume, 20) // Calculate Reversal Scores bullCandleScore = 0 bearCandleScore = 0 for i = 0 to (lookbackPeriod - 1) bullCandleScore += close < low[i] ? 1 : 0 bearCandleScore += close > high[i] ? 1 : 0 // Reversal Signals bullSignal = bullCandleScore == (lookbackPeriod - 1) and (not enableVolumeConfirmation or volumeIsHigh) bearSignal = bearCandleScore == (lookbackPeriod - 1) and (not enableVolumeConfirmation or volumeIsHigh) // ATR-based Stop Loss and Take Profit atrValue = ta.atr(14) stopLossLevel = stopLossATRMultiplier * atrValue takeProfitLevel = stopLossLevel * riskRewardRatio // Strategy Orders if bullSignal strategy.entry("Long", strategy.long) strategy.exit("Long TP/SL", from_entry="Long", stop=close - stopLossLevel, limit=close + takeProfitLevel) if bearSignal strategy.entry("Short", strategy.short) strategy.exit("Short TP/SL", from_entry="Short", stop=close + stopLossLevel, limit=close - takeProfitLevel) // Plot Reversal Signals plotshape(bullSignal, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=bullColor, size=size.small, text="B") plotshape(bearSignal, title="Sell Signal", style=shape.labeldown, location=location.abovebar, color=bearColor, size=size.small, text="S") // Alerts for trade signals alertcondition(bullSignal, "Bullish Reversal", "Bullish Reversal Signal Detected") alertcondition(bearSignal, "Bearish Reversal", "Bearish Reversal Signal Detected")