
Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan saluran Keltner dan indikator RSI yang agak kuat. Strategi ini menangkap peluang perdagangan dalam turun naik pasaran melalui kombinasi saluran harga dinamik dan indikator dinamik. Strategi ini menggunakan saluran harga pengiraan purata bergerak indeks (EMA) dan purata gelombang sebenar (ATR) dan pengesahan isyarat perdagangan bersama dengan indikator RSI, untuk mengesan trend dan penapisan ganda untuk overbought dan oversold.
Logik teras strategi adalah berdasarkan komponen utama berikut:
Strategi ini membina sistem perdagangan yang lebih lengkap dengan menggabungkan saluran harga dan penunjuk momentum. Kelebihan strategi ini adalah pengesahan pelbagai dimensi dan kemampuan penyesuaian dinamik isyarat, tetapi juga perlu berhati-hati terhadap risiko seperti penembusan palsu dan kepekaan parameter. Dengan mengoptimumkan penyesuaian parameter dan mekanisme penapisan isyarat, kestabilan dan kebolehpercayaan strategi dijangka 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")