
Strategi ini adalah strategi perdagangan yang didasarkan pada Stochastic Slow Oscillator, yang menggabungkan Moving Average, Relative Strength Index (RSI), dan teknologi AI. Strategi ini menilai sinyal silang dari indikator lambat acak, sambil mempertimbangkan posisi harga relatif terhadap rata-rata bergerak 200 hari, dan sinyal yang dihasilkan oleh model AI untuk menentukan sinyal jual beli. Strategi ini juga menetapkan stop loss dan stop loss untuk mengendalikan risiko.
Strategi ini menggunakan indikator acak untuk menangkap sinyal overbought dan oversold, sementara menggunakan filter tren dan sinyal buatan, meningkatkan stabilitas dan fleksibilitas strategi. Meskipun ada risiko tertentu, seperti kegagalan indikator dan ketidakpastian model, namun dengan mengoptimalkan parameter indikator, memperbaiki model kecerdasan buatan, dan mengadopsi langkah-langkah pengendalian risiko dinamis, strategi ini dapat meningkatkan kinerja dan kemampuan pengendalian risiko.
/*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")