Strategi Komprehensif Rata-rata Bergerak Berganda

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

img

Gambaran umum

Multiple Moving Average Comprehensive Strategy adalah strategi analisis teknis yang sangat serbaguna dan kuat. Strategi ini menggabungkan beberapa moving average di berbagai kerangka waktu untuk memberikan wawasan yang komprehensif tentang tren pasar. Strategi ini menghasilkan sinyal beli dan jual yang jelas untuk mengidentifikasi titik masuk dan keluar potensial.

Prinsip-prinsip

Inti dari strategi ini adalah untuk menghitung dan melacak beberapa rata-rata bergerak di berbagai periode, khususnya rata-rata bergerak 10 hari, 20 hari, 30 hari hingga 100 hari. Rata-rata bergerak ini ditetapkan sebagai harga penutupan rata-rata selama 10, 20, 30 hari terakhir dll.

Saat harga penutupan hari ini berada di atas semua moving average ini, sinyal beli dihasilkan. Ketika harga penutupan hari ini berada di bawah semua moving average ini, sinyal jual dihasilkan. Dengan demikian, sinyal hanya dipicu ketika semua moving average di seluruh kerangka waktu yang berbeda menunjuk ke arah yang sama. Ini menyaring banyak kebisingan dan membuat sinyal lebih dapat diandalkan.

Keuntungan

  1. Memberikan wawasan di berbagai skala waktu, dapat disesuaikan dengan lingkungan pasar yang berbeda

  2. Menyaring kebisingan melalui beberapa konfirmasi, membuat sinyal lebih andal

  3. Aturan perdagangan yang jelas mudah dimengerti dan diterapkan

  4. Sangat dapat disesuaikan untuk memenuhi kebutuhan pribadi

  5. Memberikan panduan untuk entri, stop loss dan mengambil keuntungan, memfasilitasi manajemen risiko

Risiko dan Solusi

  1. Beberapa rata-rata bergerak dapat bersilang selama pasar berkisar, menyebabkan sinyal yang tidak jelas.

  2. Probabilitas harga di masa depan melanggar beberapa rata-rata bergerak rendah, berpotensi kehilangan beberapa perdagangan.

  3. Sinyal tertinggal, tidak mampu menangkap pembalikan tren lebih awal.

  4. Jumlah perdagangan yang dihasilkan mungkin rendah untuk pendapatan yang konsisten. Memperpendek panjang rata-rata bergerak atau menggabungkan dengan strategi/indikator lain dapat membantu.

Arahan Optimasi

  1. Parameter Tuning: Sesuaikan jumlah dan panjang rata-rata bergerak untuk menemukan campuran parameter yang optimal. Kombinasi 5, 10 dan 20 hari dapat diuji misalnya.

  2. Menggabungkan Indikator Lain: Menambahkan indikator seperti MACD dan RSI dapat meningkatkan ketahanan strategi. Indikator yang berbeda memberikan komplementaritas.

  3. Strategi Bersama: Bersama dengan strategi lain seperti sistem breakout dan pelacakan tren dapat meningkatkan ketahanan.

  4. Optimasi Otomatis: Tes algoritmik set parameter yang berbeda untuk memaksimalkan fungsi objektif dan menemukan parameter optimal. Mengurangi gangguan manual dan meningkatkan efisiensi.

Kesimpulan

Strategi Komprehensif Rata-rata Bergerak Berganda adalah alat analisis yang sangat serbaguna dan kuat. Ini menyediakan wawasan skala waktu multi, sinyal yang dapat diandalkan, kemudahan penggunaan dan pemahaman, dan kemampuan kustomisasi yang tinggi. Pada saat yang sama, strategi ini memiliki beberapa keterbatasan yang dapat ditangani melalui penyesuaian parameter, kombinasi model, dll untuk beradaptasi dengan rezim pasar yang lebih kompleks. Strategi ini dapat berfungsi sebagai alat pembelajaran untuk membantu pengembangan keterampilan analisis teknis serta implementasi perdagangan praktis setelah penyesuaian yang disesuaikan dengan kebutuhan 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 banyak