이 전략은 거래 신호를 생성하기 위해 주로 RSI (비례 강도 지수), EMA (비례 이동 평균) 및 ATR (평균 진정한 범위) 를 기반으로 한 여러 기술적 지표를 결합한 단기 거래 시스템입니다. 여러 지표를 함께 활용함으로써 전략은 옵션 볼륨 필터와 함께 가격 추세와 시장 변동성을 모두 고려하여 비교적 완전한 거래 의사 결정 시스템을 만듭니다.
이 전략은 신호 신뢰성을 보장하기 위해 세 번 필터링 메커니즘을 사용합니다.
긴 신호와 짧은 신호의 특정 트리거 조건은 다음과 같습니다.
이것은 여러 확인 메커니즘을 통해 거래 신뢰성을 향상시키는 잘 설계된 다중 지표 거래 시스템입니다. 전략의 핵심 장점은 여러 가지 시장 차원을 고려하면서 트렌드 및 변동성 분석을 결합하는 데 있습니다. 최적화 할 여지가 있지만 전반적으로 추가 정제 및 구현 가치가있는 거래 전략입니다.
/*backtest start: 2024-12-12 00:00:00 end: 2024-12-19 00:00:00 period: 3m basePeriod: 3m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Scalp Master BTCUSDT Strategy", overlay=true, max_labels_count=500, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1) //=== Kullanıcı Parametreleri === rsi_length = input.int(14, "RSI Length") rsi_lower_band = input.float(45, "RSI Lower Band") rsi_upper_band = input.float(55, "RSI Upper Band") ema_fast_length = input.int(5, "Fast EMA") ema_slow_length = input.int(21, "Slow EMA") atr_period = input.int(14, "ATR Period") atr_mult = input.float(0.8, "ATR Multiplier") volume_filter = input.bool(false, "Enable Volume Filter") volume_period = input.int(20, "Volume SMA Period") volume_mult = input.float(1.0, "Volume Threshold Multiplier") //=== Hesaplamalar === // RSI Hesabı rsi_val = ta.rsi(close, rsi_length) // ATR Tabanlı Volatilite Kontrolü atr_val = ta.atr(atr_period) volatility_ok = atr_val > (ta.sma(atr_val, atr_period) * atr_mult) // EMA Trend ema_fast_val = ta.ema(close, ema_fast_length) ema_slow_val = ta.ema(close, ema_slow_length) trend_up = ema_fast_val > ema_slow_val trend_down = ema_fast_val < ema_slow_val // Hacim Filtresi volume_sma = ta.sma(volume, volume_period) high_volume = volume > (volume_sma * volume_mult) // Sinyal Koşulları (Aynı Alarm Koşulları) long_signal = trend_up and rsi_val < rsi_lower_band and volatility_ok and (volume_filter ? high_volume : true) short_signal = trend_down and rsi_val > rsi_upper_band and volatility_ok and (volume_filter ? high_volume : true) //=== Strateji Mantığı === // Basit bir yaklaşım: // - Long sinyali gelince önce Short pozisyonu kapat, sonra Long pozisyona gir. // - Short sinyali gelince önce Long pozisyonu kapat, sonra Short pozisyona gir. if (long_signal) strategy.close("Short") // Eğer varsa Short pozisyonu kapat strategy.entry("Long", strategy.long) if (short_signal) strategy.close("Long") // Eğer varsa Long pozisyonu kapat strategy.entry("Short", strategy.short) // EMA Çizimleri plot(ema_fast_val, title="Fast EMA (5)", color=color.new(color.orange, 0), linewidth=2) plot(ema_slow_val, title="Slow EMA (21)", color=color.new(color.blue, 0), linewidth=2) // Sinyal İşaretleri plotshape(long_signal, title="BUY Signal", location=location.belowbar, color=color.new(color.green, 0), style=shape.labelup, text="BUY") plotshape(short_signal, title="SELL Signal", location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text="SELL") // Arka plan renklendirmesi bgcolor(long_signal ? color.new(color.green, 85) : short_signal ? color.new(color.red, 85) : na) // Alarm Koşulları (İndikatör ile aynı koşullar) alertcondition(long_signal, title="Buy Alert", message="BTCUSDT Scalp Master: Buy Signal Triggered") alertcondition(short_signal, title="Sell Alert", message="BTCUSDT Scalp Master: Sell Alert Triggered")