Strategi komprehensif purata bergerak berganda

Penulis:ChaoZhang, Tarikh: 2023-12-22 11:56:42
Tag:

img

Ringkasan

Strategi Komprehensif Purata Bergerak Berganda adalah strategi analisis teknikal yang sangat serba boleh dan berkuasa. Ia menggabungkan pelbagai purata bergerak dalam jangka masa yang berbeza untuk memberikan wawasan komprehensif mengenai trend pasaran. Strategi ini menghasilkan isyarat beli dan jual yang jelas untuk mengenal pasti titik masuk dan keluar yang berpotensi.

Prinsip-prinsip

Inti strategi ini adalah untuk mengira dan mengesan pelbagai purata bergerak merentasi tempoh yang berbeza, khususnya purata bergerak 10 hari, 20 hari, 30 hari sehingga 100 hari. purata bergerak ini ditetapkan sebagai harga penutupan purata selama 10, 20, 30 hari yang lalu dan sebagainya. Sebagai contoh, purata bergerak 20 hari adalah harga penutupan purata selama 20 hari yang lalu.

Apabila harga penutupan hari ini berada di atas semua purata bergerak ini, isyarat beli dihasilkan. Apabila harga penutupan hari ini berada di bawah semua purata bergerak ini, isyarat jual dihasilkan. Oleh itu, isyarat hanya dicetuskan apabila semua purata bergerak merentasi jangka masa yang berbeza menunjuk ke arah yang sama. Ini menapis banyak bunyi dan menjadikan isyarat lebih boleh dipercayai.

Kelebihan

  1. Menyediakan wawasan merentasi pelbagai skala masa, dapat disesuaikan dengan persekitaran pasaran yang berbeza

  2. Menapis bunyi melalui pengesahan berbilang, menjadikan isyarat lebih boleh dipercayai

  3. Peraturan perdagangan yang jelas mudah difahami dan dilaksanakan

  4. Sangat disesuaikan untuk memenuhi keperluan peribadi

  5. Memberi panduan untuk kemasukan, hentikan kerugian dan mengambil keuntungan, memudahkan pengurusan risiko

Risiko dan Penyelesaian

  1. Pelbagai purata bergerak boleh bersilang semasa pasaran berkisar, membawa kepada isyarat yang tidak jelas. Ini boleh dikurangkan dengan menyesuaikan bilangan dan panjang purata bergerak.

  2. Kemungkinan harga masa depan memecahkan pelbagai purata bergerak adalah rendah, berpotensi kehilangan beberapa dagangan.

  3. Isyarat yang tertinggal, tidak dapat menangkap pembalikan trend awal.

  4. Jumlah dagangan yang dihasilkan mungkin rendah untuk pendapatan yang konsisten. Memendekkan panjang purata bergerak atau menggabungkan dengan strategi / penunjuk lain boleh membantu.

Arahan pengoptimuman

  1. Penyesuaian Parameter: Sesuaikan bilangan dan panjang purata bergerak untuk mencari campuran parameter yang optimum. Kombinasi 5, 10 dan 20 hari boleh diuji sebagai contoh.

  2. Menggabungkan Penunjuk Lain: Menambah penunjuk seperti MACD dan RSI boleh meningkatkan daya tahan strategi.

  3. Strategi Bersama: Bersama dengan strategi lain seperti sistem pecah dan penjejakan trend boleh meningkatkan ketahanan.

  4. Pengoptimuman automatik: Uji algoritma set parameter yang berbeza untuk memaksimumkan fungsi objektif dan mencari parameter optimum. Mengurangkan gangguan manual dan meningkatkan kecekapan.

Kesimpulan

Strategi komprehensif purata bergerak berganda adalah alat analisis yang sangat serba boleh dan berkuasa. Ia menyediakan wawasan skala masa berbilang, isyarat yang boleh dipercayai, kemudahan penggunaan dan kefahaman, dan penyesuaian yang tinggi. Pada masa yang sama, ia mempunyai beberapa batasan yang boleh ditangani melalui penyesuaian parameter, kombinasi model dll untuk penyesuaian dengan rejim pasaran yang lebih kompleks. Strategi ini boleh berfungsi sebagai alat pembelajaran untuk membantu pembangunan kemahiran analisis teknikal serta pelaksanaan perdagangan praktikal selepas penyesuaian yang disesuaikan dengan keperluan individu.


/*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)


Lebih lanjut