
Strategi komprehensif moving averages adalah strategi analisis teknikal yang sangat komprehensif dan universal. Ia menggabungkan purata bergerak dari pelbagai tempoh masa untuk memberikan wawasan menyeluruh mengenai trend pasaran.
Strategi ini berpusat pada pengiraan dan pengesanan purata bergerak dari pelbagai tempoh panjang, termasuk purata bergerak 10 hari, 20 hari, 30 hari hingga 100 hari. Purata bergerak ini ditetapkan sebagai purata harga penutupan hari ini dengan harga penutupan pada tempoh tertentu yang lalu (seperti 10 hari, 20 hari, dan sebagainya).
Apabila harga penutupan hari ini lebih tinggi daripada semua purata bergerak ini, ia menghasilkan isyarat beli. Apabila harga penutupan hari ini lebih rendah daripada semua purata bergerak ini, ia menghasilkan isyarat jual. Dengan demikian, isyarat hanya dihasilkan apabila purata bergerak semua kitaran menunjuk ke arah yang sama, yang menyaring banyak peluang perdagangan bising, menjadikan isyarat lebih dipercayai.
Memberi wawasan dalam skala masa yang berbeza untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
Dengan pelbagai pengesahan, penapis Noise, isyarat lebih dipercayai
Peraturan urus niaga jelas, mudah difahami dan dilaksanakan
Dengan kepelbagaian yang tinggi, pengguna boleh menyesuaikan parameter untuk memenuhi keperluan peribadi
Memberi panduan yang jelas untuk penempatan, hentikan, dan hentikan, membantu pengurusan risiko
Apabila pasaran berada dalam tempoh yang bergolak, beberapa purata bergerak boleh bersalin antara satu sama lain, menyebabkan tidak ada isyarat yang jelas. Kemungkinan persilangan boleh dikurangkan dengan menyesuaikan bilangan dan panjang kitaran purata bergerak.
Kemungkinan harga untuk menembusi lebih daripada satu purata bergerak pada masa akan datang adalah lebih rendah, mungkin kehilangan sebahagian peluang perdagangan. Jumlah purata bergerak boleh dikurangkan dengan sewajarnya, mengurangkan kesukaran untuk menembusi.
Isyarat menghasilkan kelewatan dan tidak dapat menangkap trend sebelum titik peralihan harga. Bersama-sama dengan penunjuk awal lain seperti MACD dapat meningkatkan penghakiman mengenai peralihan trend.
Perdagangan mungkin tidak banyak dan sukar untuk mendapatkan keuntungan yang stabil. Panjang purata bergerak boleh dipotong dengan sewajarnya atau digunakan dengan kombinasi strategi / indikator lain.
Penyesuaian parameter: menyesuaikan bilangan dan panjang kitaran purata bergerak untuk mencari kombinasi parameter yang terbaik. Sebagai contoh, kombinasi purata bergerak 5, 10 dan 20 hari yang boleh diuji.
Gabungan dengan petunjuk lain: digunakan dengan kombinasi petunjuk lain seperti MACD, RSI, dan lain-lain untuk meningkatkan ketahanan strategi.
Gabungan strategi: Gabungan dengan strategi lain seperti sistem penembusan, sistem pengesanan trend, meningkatkan kestabilan. Strategi yang berbeza dapat menyebarkan risiko.
Pencarian automatik: Menggunakan algoritma untuk menguji parameter yang berbeza secara automatik, mencari kombinasi parameter yang memaksimumkan yang diharapkan. Mengurangkan campur tangan manusia, meningkatkan kecekapan.
Strategi komprehensif berbilang purata bergerak adalah alat strategi yang sangat komprehensif dan kuat. Ia memberikan wawasan skala masa yang berbilang, isyaratnya lebih dipercayai, mudah difahami, dan sangat disesuaikan. Ia juga mempunyai beberapa batasan, tetapi dapat dioptimumkan untuk menyesuaikan diri dengan keadaan pasaran yang lebih kompleks dengan cara menyesuaikan parameter dan menggabungkannya dengan model lain.
/*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)