
Strategi ini adalah strategi perdagangan kuantitatif yang berdasarkan pada pelbagai purata bergerak dan tanda-tanda penyambungan penunjuk goyah rawak. Strategi ini menggunakan purata bergerak jangka pendek, pertengahan dan jangka panjang secara komprehensif, menggabungkan ciri-ciri overbought dan oversold penunjuk goyah rawak, untuk menangkap titik-titik perubahan trend pasaran dan peluang perdagangan melalui pengesahan pelbagai isyarat.
Strategi ini menggunakan lima purata bergerak pada 3, 5, 6, 10 dan 80 hari, serta penunjuk goyah rawak (Stochastic Oscillator). Isyarat perdagangan dicetuskan berdasarkan syarat berikut:
Strategi ini menggunakan kombinasi pelbagai purata bergerak dan indikator goyah rawak untuk mewujudkan sistem perdagangan yang agak sempurna. Kelebihan strategi ini adalah kebolehpercayaan isyarat dan kestabilan sistem, tetapi juga perlu berhati-hati untuk mengawal kos perdagangan dan kesesuaian dengan keadaan pasaran. Dengan pengoptimuman dan penyempurnaan yang berterusan, strategi ini dijangka menghasilkan keuntungan yang stabil dalam perdagangan sebenar.
/*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)