
Multiple Moving Average Comprehensive Strategy adalah strategi analisis teknis yang sangat komprehensif dan universal. Ini menggabungkan moving average dari beberapa periode waktu untuk memberikan wawasan yang komprehensif tentang tren pasar. Strategi ini membantu mengidentifikasi titik masuk dan keluar potensial dengan menghasilkan sinyal beli dan jual yang jelas.
Inti dari strategi ini adalah menghitung dan melacak rata-rata bergerak dari beberapa periode dengan panjang yang berbeda, termasuk rata-rata bergerak dari 10, 20, 30 hari hingga 100 hari. Rata-rata bergerak ini ditetapkan sebagai rata-rata harga penutupan hari ini dengan harga penutupan periode tertentu di masa lalu (seperti 10 hari, 20 hari, dll.).
Ketika harga penutupan hari ini lebih tinggi dari semua rata-rata bergerak ini, menghasilkan sinyal beli. Ketika harga penutupan hari ini lebih rendah dari semua rata-rata bergerak ini, menghasilkan sinyal jual. Dengan demikian, sinyal hanya akan dihasilkan ketika rata-rata bergerak dari semua siklus menunjuk ke arah yang sama, sehingga menyaring banyak peluang perdagangan yang berisik, membuat sinyal lebih dapat diandalkan.
Memberikan wawasan dalam skala waktu yang dapat disesuaikan dengan kondisi pasar yang berbeda
Dengan beberapa konfirmasi, filter Noise, sinyal lebih dapat diandalkan
Aturan transaksi jelas, mudah dipahami dan diterapkan
Dengan kemampuan kustomisasi yang tinggi, pengguna dapat menyesuaikan parameter untuk memenuhi kebutuhan pribadi
Memberikan panduan yang jelas tentang entry, stop loss, dan stop loss untuk membantu manajemen risiko
Ketika pasar berada dalam periode getaran, beberapa rata-rata bergerak dapat saling melintasi satu sama lain, sehingga tidak ada sinyal yang jelas yang dihasilkan. Probabilitas persilangan dapat dikurangi dengan menyesuaikan jumlah dan panjang siklus rata-rata bergerak.
Kemungkinan harga untuk memecahkan lebih dari satu rata-rata bergerak di masa depan lebih rendah, dan mungkin kehilangan beberapa peluang perdagangan. Jumlah rata-rata bergerak dapat dikurangi secara tepat untuk mengurangi kesulitan penembusan.
Sinyal yang dihasilkan terlambat, tidak dapat menangkap tren sebelum titik belokan harga. Kombinasi dengan indikator lain yang lebih awal seperti MACD dapat meningkatkan penilaian terhadap perubahan tren.
Perdagangan mungkin tidak banyak dan sulit untuk mendapatkan keuntungan yang stabil. Panjang rata-rata bergerak dapat dipersingkat sesuai atau digunakan dengan kombinasi strategi / indikator lainnya.
Penyesuaian parameter: penyesuaian jumlah dan panjang siklus rata-rata bergerak untuk mencari kombinasi parameter yang optimal. Misalnya, kombinasi rata-rata bergerak 5, 10 dan 20 hari yang dapat diuji.
Kombinasi dengan indikator lain: digunakan dengan kombinasi indikator lain seperti MACD, RSI, dan lain-lain untuk meningkatkan ketahanan strategi.
Kombinasi strategi: Kombinasi dengan strategi lain seperti sistem penembusan, sistem pelacakan tren, meningkatkan stabilitas. Strategi yang berbeda dapat menyebarkan risiko.
Pengoptimalan otomatis: Menggunakan algoritma untuk menguji berbagai parameter secara otomatis, mencari kombinasi parameter yang memaksimalkan harapan. Mengurangi intervensi manusia, meningkatkan efisiensi.
Multiple Moving Average Comprehensive Strategy adalah alat strategi yang sangat komprehensif dan kuat. Ini memberikan wawasan skala waktu, sinyal yang lebih dapat diandalkan, mudah dipahami, dan sangat dapat disesuaikan. Ada juga beberapa keterbatasan, tetapi dapat dioptimalkan dengan menyesuaikan parameter, kombinasi dengan model lain, dan lain-lain, sehingga dapat disesuaikan dengan situasi pasar yang lebih kompleks.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Multiple Moving Average Strategy", overlay=true)
// Function to calculate moving average
get_ma(src, length) =>
ta.sma(src, length)
// Initialize moving average lengths
ma_length_10 = 10
ma_length_20 = 20
ma_length_30 = 30
ma_length_40 = 40
ma_length_50 = 50
ma_length_60 = 60
ma_length_70 = 70
ma_length_80 = 80
ma_length_90 = 90
ma_length_100 = 100
// Calculate 10-day, 20-day, 30-day, 40-day, 50-day, 60-day, 70-day, 80-day, 90-day, and 100-day moving averages
ma_10 = get_ma(close, ma_length_10)
ma_20 = get_ma(close, ma_length_20)
ma_30 = get_ma(close, ma_length_30)
ma_40 = get_ma(close, ma_length_40)
ma_50 = get_ma(close, ma_length_50)
ma_60 = get_ma(close, ma_length_60)
ma_70 = get_ma(close, ma_length_70)
ma_80 = get_ma(close, ma_length_80)
ma_90 = get_ma(close, ma_length_90)
ma_100 = get_ma(close, ma_length_100)
// Generate Buy/Sell signals for the 10 moving averages
buy_signal = close > ma_10
sell_signal = close < ma_10
// Add conditions for each additional moving average length
buy_signal := buy_signal and (close > get_ma(close, ma_length_20))
sell_signal := sell_signal and (close < get_ma(close, ma_length_20))
buy_signal := buy_signal and (close > get_ma(close, ma_length_30))
sell_signal := sell_signal and (close < get_ma(close, ma_length_30))
buy_signal := buy_signal and (close > get_ma(close, ma_length_40))
sell_signal := sell_signal and (close < get_ma(close, ma_length_40))
buy_signal := buy_signal and (close > get_ma(close, ma_length_50))
sell_signal := sell_signal and (close < get_ma(close, ma_length_50))
buy_signal := buy_signal and (close > get_ma(close, ma_length_60))
sell_signal := sell_signal and (close < get_ma(close, ma_length_60))
buy_signal := buy_signal and (close > get_ma(close, ma_length_70))
sell_signal := sell_signal and (close < get_ma(close, ma_length_70))
buy_signal := buy_signal and (close > get_ma(close, ma_length_80))
sell_signal := sell_signal and (close < get_ma(close, ma_length_80))
buy_signal := buy_signal and (close > get_ma(close, ma_length_90))
sell_signal := sell_signal and (close < get_ma(close, ma_length_90))
buy_signal := buy_signal and (close > get_ma(close, ma_length_100))
sell_signal := sell_signal and (close < get_ma(close, ma_length_100))
// Plot Buy/Sell signals on the chart
plotshape(buy_signal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(sell_signal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Execute long buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.entry("Buy", strategy.long)
// Execute sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.close("Buy")
// Execute short sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Execute buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.close("Sell")
// Plot closing price and moving averages on the chart
plot(close, title="Close", color=color.blue)
plot(ma_10, title="MA 10", color=color.orange)
plot(ma_20, title="MA 20", color=color.purple)
plot(ma_30, title="MA 30", color=color.blue)
plot(ma_40, title="MA 40", color=color.red)
plot(ma_50, title="MA 50", color=color.green)
plot(ma_60, title="MA 60", color=color.yellow)
plot(ma_70, title="MA 70", color=color.fuchsia)
plot(ma_80, title="MA 80", color=color.gray)
plot(ma_90, title="MA 90", color=color.teal)
plot(ma_100, title="MA 100", color=color.maroon)