
La stratégie est un système de trading quantitatif qui combine le canal de Keltner et l’indicateur relativement faible RSI. La stratégie capte les opportunités de trading dans les fluctuations du marché en combinant le canal de prix dynamique et l’indicateur de dynamique. La stratégie utilise les canaux de prix de calcul des moyennes mobiles de l’indicateur (EMA) et de l’amplitude réelle moyenne (ATR) et la confirmation des signaux de négociation avec l’indicateur RSI, permettant le suivi de la tendance et le double filtrage des surventes.
La logique fondamentale de la stratégie repose sur les éléments clés suivants :
La stratégie a pour avantage de permettre une confirmation multidimensionnelle du signal et une adaptation dynamique, mais elle doit également être attentive aux risques tels que les faux-battements et la sensibilité des paramètres. La stabilité et la fiabilité de la stratégie sont susceptibles d’être améliorées en optimisant davantage l’auto-adaptation des paramètres et le mécanisme de filtrage du signal.
/*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")