Strategi ini adalah strategi perdagangan kuantitatif yang didasarkan pada sinyal silang dari beberapa rata-rata bergerak dan indikator goyangan acak. Strategi ini menggunakan rata-rata bergerak jangka pendek, menengah, dan panjang secara komprehensif, yang menggabungkan karakteristik overbought dan oversold dari indikator goyangan acak, untuk menangkap titik pivot dan peluang perdagangan tren pasar melalui konfirmasi sinyal ganda.
Strategi ini menggunakan lima rata-rata bergerak pada 3, 5, 6, 10, dan 80 hari, serta indikator getaran acak (Stochastic Oscillator). Trigger sinyal perdagangan didasarkan pada:
Strategi ini membangun sistem perdagangan yang relatif sempurna dengan menggunakan kombinasi dari beberapa rata-rata bergerak dan indikator goyah acak. Keunggulan strategi ini adalah keandalan sinyal dan stabilitas sistem, tetapi juga perlu memperhatikan pengendalian biaya perdagangan dan kesesuaian dengan lingkungan pasar. Dengan terus-menerus mengoptimalkan dan menyempurnakan, strategi ini diharapkan untuk menghasilkan keuntungan yang stabil dalam perdagangan aktual.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Moving Average and Stochastic Crossover Strategy", overlay=true)
// Calculate the moving averages
ma3 = ta.sma(close, 3)
ma5 = ta.sma(close, 5)
ma6 = ta.sma(close, 6)
ma10 = ta.sma(close, 10)
ma80 = ta.sma(close, 80)
// Stochastic Oscillator with settings %K(15), %D(9), and slowing 9
k = ta.stoch(close, high, low, 15)
d = ta.sma(k, 9)
slow_d = ta.sma(d, 9)
// Buy signal confirmation: MA10 crosses above MA5, MA6, and K line crosses above D line
buySignalConfirmation = ta.crossover(ma10, ma5) and ta.crossover(ma10, ma6) and ta.crossover(k, d)
// Sell signal confirmation: MA5 crosses above MA10, MA6, and D line crosses above K line
sellSignalConfirmation = ta.crossunder(ma5, ma10) and ta.crossunder(ma5, ma6) and ta.crossunder(d, k)
// Strategy logic
if (buySignalConfirmation)
strategy.entry("Buy", strategy.long)
if (sellSignalConfirmation)
strategy.entry("Sell", strategy.short)
// Plot the moving averages and Stochastic Oscillator for visualization
plot(ma3, color=color.orange, title="MA3", linewidth=2)
plot(ma5, color=color.blue, title="MA5", linewidth=2)
plot(ma6, color=color.purple, title="MA6", linewidth=2)
plot(ma10, color=color.green, title="MA10", linewidth=2)
plot(ma80, color=color.red, title="MA80", linewidth=2)
plot(k, color=color.blue, title="%K", linewidth=2)
plot(d, color=color.red, title="%D", linewidth=2)
plot(slow_d, color=color.purple, title="Slow %D", linewidth=2)