
Die Strategie ist ein Intra-Trading-System, das mehrere technische Indikatoren kombiniert, die hauptsächlich auf dem Cross-Signal des schnellen und langsamen Index-Moving Averages (EMA) basieren, während die Dynamik-Filterung in Verbindung mit dem relativ starken Index (RSI) und die dynamische Einstellung von Stop-Loss-Positionen mit dem True Range-Indikator (ATR) ein vollständiges Handelssystem bilden. Die Strategie ermöglicht die Erfassung von kurzfristigen Marktbewegungen durch strenge Risikokontrolle und dynamische Stop-Loss-Einstellungen.
Die Kernlogik der Strategie umfasst folgende Aspekte:
Die spezifischen Regeln für den Handel lauten:
Vorschläge zur Risikokontrolle:
Die Strategie ist durch die Kombination von EMA-Trendverfolgung, RSI-Dynamikfilter und ATR-dynamischen Risikokontrollen zu einem relativ vollständigen Handelssystem gebaut. Die Hauptmerkmale der Strategie sind die Synergieeffekte von mehreren technischen Indikatoren und der Fokus auf Risikomanagement. Obwohl es einen gewissen Optimierungsraum gibt, entspricht die Gesamtkonzeption dem systematischen Denken von quantifizierten Geschäften.
/*backtest
start: 2024-02-10 00:00:00
end: 2025-02-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Day Trading EMA/RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// Ulazni parametri
fastEmaPeriod = input.int(9, "Fast EMA Period", minval=1)
slowEmaPeriod = input.int(21, "Slow EMA Period", minval=1)
rsiPeriod = input.int(14, "RSI Period", minval=1)
rsiOversold = input.int(30, "RSI Oversold Level")
rsiOverbought = input.int(70, "RSI Overbought Level")
atrPeriod = input.int(14, "ATR Period", minval=1)
atrMultiplier = input.float(1.5, "ATR Multiplier za Stop Loss", step=0.1)
takeProfitFactor= input.float(2.0, "Take Profit Factor", step=0.1)
// Izračun indikatora
fastEMA = ta.ema(close, fastEmaPeriod)
slowEMA = ta.ema(close, slowEmaPeriod)
rsiValue = ta.rsi(close, rsiPeriod)
atrValue = ta.atr(atrPeriod)
// Definicija trenda: ako je fastEMA iznad slowEMA, smatramo da je trend uzlazan, inače silazni.
trendUp = fastEMA > slowEMA
trendDown = fastEMA < slowEMA
// Uvjeti za ulaz:
// Ulaz u long poziciju: crossover fastEMA i slowEMA, uz filtriranje da RSI nije prekupovan (manje od rsiOverbought)
longCondition = ta.crossover(fastEMA, slowEMA) and (rsiValue < rsiOverbought)
// Ulaz u short poziciju: crossunder fastEMA i slowEMA, uz filtriranje da RSI nije preprodavan (više od rsiOversold)
shortCondition = ta.crossunder(fastEMA, slowEMA) and (rsiValue > rsiOversold)
// Definicija dinamičnih stop-loss razina (ATR-based)
stopLossLong = close - (atrMultiplier * atrValue)
stopLossShort = close + (atrMultiplier * atrValue)
// Izvršenje naloga
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=stopLossLong, limit=close + (takeProfitFactor * atrValue))
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=stopLossShort, limit=close - (takeProfitFactor * atrValue))
// Plotanje indikatora za preglednost
plot(fastEMA, title="Fast EMA", color=color.green)
plot(slowEMA, title="Slow EMA", color=color.red)