
Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan saluran Keltner dan indikator RSI yang relatif kuat. Strategi ini menangkap peluang perdagangan dalam fluktuasi pasar melalui kombinasi saluran harga dinamis dan indikator dinamika. Strategi ini menggunakan saluran harga penghitungan indeks moving average (EMA) dan rata-rata true range (ATR), dan mengkonfirmasi sinyal perdagangan dengan indikator RSI, untuk melacak tren dan melakukan penyaringan ganda untuk overbought dan oversold.
Logika inti dari strategi ini didasarkan pada komponen-komponen kunci berikut:
Strategi ini membangun sistem perdagangan yang lebih lengkap dengan menggabungkan saluran harga dan indikator momentum. Keuntungan dari strategi ini adalah pengakuan multi-dimensi dan kemampuan adaptasi dinamis dari sinyal, tetapi juga perlu memperhatikan risiko seperti terobosan palsu dan sensitivitas parameter. Dengan mengoptimalkan lebih lanjut parameter adaptasi dan mekanisme penyaringan sinyal, stabilitas dan keandalan strategi diharapkan ditingkatkan.
/*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")