
Strategi ini adalah strategi perdagangan berdasarkan Stochastic Slow Oscillator, yang menggabungkan Moving Average, RSI, dan AI. Strategi ini membuat keputusan melalui isyarat silang dari indikator perlahan secara rawak, sambil mempertimbangkan kedudukan harga terhadap purata bergerak 200 hari, dan isyarat yang dihasilkan oleh model AI, untuk menentukan isyarat membeli dan menjual.
Strategi ini membina strategi perdagangan berbilang faktor dengan menggabungkan penunjuk perlahan acak, purata bergerak, indeks yang agak kuat dan teknologi kecerdasan buatan. Strategi ini menggunakan penunjuk acak untuk menangkap isyarat overbought dan oversold, sambil menggunakan penapis trend dan penjanaan isyarat pintar, meningkatkan kestabilan dan kemampuan adaptasi strategi. Walaupun terdapat risiko tertentu, seperti kegagalan indikator dan ketidakpastian model, prestasi dan kawalan risiko strategi dapat ditingkatkan dengan mengoptimumkan parameter indikator, memperbaiki model kecerdasan buatan, menggunakan kaedah langkah-langkah kawalan risiko dinamik, dan sebagainya.
/*backtest
start: 2024-03-12 00:00:00
end: 2024-04-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Stochastic Slow Strategy with More Entries and AI", overlay=true)
length = input.int(30, minval=1)
OverBought = input(40)
OverSold = input(19)
smoothK = input.int(18, minval=1)
smoothD = input.int(7, minval=1)
minKValue = input(12, title="Minimum K Value")
// Stochastic calculations
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
co = ta.crossover(k, d)
cu = ta.crossunder(k, d)
// Trend filter (200-period simple moving average)
ema200 = ta.sma(close, 200)
// Define la función para calcular la señal de la red neuronal recurrente
rnn_signal(price_series) =>
// Aquí implementa tu modelo de red neuronal recurrente para generar la señal
// Puedes usar bibliotecas externas o implementar tu propio modelo aquí
// Ejemplo de señal aleatoria
signal = ta.rsi(price_series, 14) > 50 ? 1 : -1
// Devuelve la señal generada por la red neuronal recurrente
signal
// Calcula la señal utilizando la función definida anteriormente
ai_signal = rnn_signal(close)
// Entry conditions
longCondition = ta.crossover(close, ema200) and k < OverSold and k > minKValue and ai_signal == 1
shortCondition = ta.crossunder(close, ema200) and k > OverBought and k > minKValue and ai_signal == -1
if (not na(k) and not na(d))
if (co and k < OverSold and k > minKValue)
strategy.entry("LONG", strategy.long, comment="LONG")
strategy.exit("ExitLong", "LONG", profit = close * 500, loss = close * 200)
if (cu and k > OverBought and k > minKValue)
strategy.entry("SHORT", strategy.short, comment="SHORT")
strategy.exit("ExitShort", "SHORT", profit = close * 500, loss = close * 200)
if (longCondition)
strategy.entry("LongEntry", strategy.long, comment="LongEntry")
strategy.exit("ExitLongEntry", "LongEntry", profit = close * 500, loss = close * 200)
if (shortCondition)
strategy.entry("ShortEntry", strategy.short, comment="ShortEntry")
strategy.exit("ExitShortEntry", "ShortEntry", profit = close * 500, loss = close * 200)
// Plotting
plot(ema200, color=color.blue, title="200 SMA")