
Die Strategie ist ein quantitatives Handelssystem, das Keltner Channel und den relativ starken RSI kombiniert. Die Strategie nutzt die Indikatoren Moving Average (EMA) und Average True Range (ATR) für die Berechnung der Preiskanäle und die Bestätigung der Handelssignale in Verbindung mit dem RSI, um Trend-Tracking und die Doppelfilterung von Überkaufen und Überverkaufen zu ermöglichen.
Die Kernlogik der Strategie basiert auf den folgenden Schlüsselkomponenten:
Durch die Kombination von Preiskanälen und Dynamikindikatoren baut die Strategie ein relativ vollständiges Handelssystem auf. Die Vorteile der Strategie liegen in der mehrdimensionalen Bestätigung und dynamischen Adaptionsfähigkeit der Signale, aber auch bei Risiken wie False Breakouts und Parameter-Sensitivität. Die Stabilität und Zuverlässigkeit der Strategie wird durch weitere Optimierung der Parameter-Anpassungsfähigkeit und der Signalfiltermechanismen verbessert.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Keltner Channel + RSI Stratégiia", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// Parametre Keltner Channel
ema_length = input.int(20, title="EMA Perióda")
atr_length = input.int(10, title="ATR Perióda")
multiplier = input.float(1.5, title="ATR Multiplikátor")
// Výpočet Keltner Channel
ema = ta.ema(close, ema_length)
atr = ta.atr(atr_length)
upper_kc = ema + (multiplier * atr)
lower_kc = ema - (multiplier * atr)
// Parametre RSI
rsi_length = input.int(14, title="RSI Perióda")
rsi_overbought = input.int(70, title="RSI Prekúpenosť")
rsi_oversold = input.int(30, title="RSI Prepredanosť")
// Výpočet RSI
rsi = ta.rsi(close, rsi_length)
// Obchodné podmienky
// Nákupná podmienka: Cena prechádza nad dolnou Keltner Channel a RSI je pod prepredanosťou
long_condition = ta.crossover(close, lower_kc) and (rsi < rsi_oversold)
// Predajná podmienka: Cena prechádza pod hornou Keltner Channel a RSI je nad prekúpenosťou
short_condition = ta.crossunder(close, upper_kc) and (rsi > rsi_overbought)
// Uzatváranie pozícií
close_long_condition = ta.crossunder(close, ema) or (rsi > 50)
close_short_condition = ta.crossover(close, ema) or (rsi < 50)
// Vstupy do pozícií
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
// Uzatváranie pozícií
if (close_long_condition)
strategy.close("Long")
if (close_short_condition)
strategy.close("Short")
// Vizualizácia indikátorov
// Keltner Channel
plot_ema = plot(ema, title="EMA", color=color.blue, linewidth=2)
plot_upper = plot(upper_kc, title="Horná Keltner Channel", color=color.green, linewidth=1)
plot_lower = plot(lower_kc, title="Dolná Keltner Channel", color=color.red, linewidth=1)
fill(plot_upper, plot_lower, color=color.new(color.purple, 90), title="Keltner Channel Fill") // Nastavenie transparentnosti priamo v farbe
// RSI
hline_overbought = hline(rsi_overbought, "RSI Overbought", color=color.red, linestyle=hline.style_dotted)
hline_oversold = hline(rsi_oversold, "RSI Oversold", color=color.green, linestyle=hline.style_dotted)
plot_rsi = plot(rsi, title="RSI", color=color.orange, linewidth=2, offset=0)
// Šípky pre signály
plotshape(series=long_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Nákupný Signál", text="BUY")
plotshape(series=short_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Predajný Signál", text="SELL")