Strategi Crossover Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2023-12-08
Tag:

img

Strategi ini mengadopsi penyeberangan rata-rata bergerak 20 hari dan rata-rata bergerak 60 hari untuk menghasilkan sinyal perdagangan. Ini pergi panjang ketika harga melanggar di atas MA 20 hari dan menutup posisi ketika harga melanggar di bawah MA 20 hari. Demikian pula, itu membentuk sinyal perdagangan ketika harga melintasi MA 60 hari. Strategi ini termasuk dalam sistem trend berikut yang khas.

Logika Strategi

  1. Menghitung rata-rata bergerak sederhana 20 hari dan rata-rata bergerak sederhana 60 hari
  2. Pergi panjang ketika harga penutupan melanggar di atas MA 20 hari
  3. Posisi tertutup ketika harga penutupan terganggu di bawah MA 20 hari
  4. Pergi panjang ketika harga penutupan melanggar di atas MA 60 hari
  5. Posisi tertutup ketika harga penutupan terganggu di bawah MA 60 hari

Aturan di atas mendefinisikan sinyal perdagangan dan logika untuk strategi ini. Ketika harga melintasi garis MA, itu menunjukkan tren baru muncul dan kita dapat mengikuti tren untuk pergi panjang. Ketika harga turun di bawah garis MA, itu menunjukkan tren berakhir sehingga kita menutup posisi.

Keuntungan

  1. Mengadopsi MA ganda membuat strategi lebih stabil. MA 20 hari menangkap peluang jangka pendek lebih cepat sementara MA 60 hari menyaring beberapa kebisingan pasar dan kunci dalam tren jangka menengah dan panjang.
  2. Uji balik dimulai dari tahun 2018 dan memilih pasar saham Taiwan, yang memiliki sistem perdagangan yang lebih maju dibandingkan dengan pasar saham A China, yang lebih mencerminkan efektivitas strategi.
  3. Hal ini menetapkan stop loss yang tepat dan ukuran posisi, mengendalikan risiko maksimal.

Risiko

  1. Strategi ini hanya mengandalkan indikator MA. Ini dapat menghasilkan lebih banyak whipsaws ketika tidak ada tren yang jelas di pasar.
  2. Strategi ini tidak mengoptimalkan ukuran dan posisi pembelian/penjualan, gagal memaksimalkan penggunaan modal.
  3. Strategi ini bereaksi secara simetris terhadap kenaikan dan penurunan harga, tidak dapat beradaptasi dengan kondisi pasar yang berbeda.

Solusi Risiko:

  1. Tambahkan indikator lain seperti KDJ, MACD untuk membentuk konfirmasi ganda, menghindari perdagangan yang salah.
  2. Mengoptimalkan ukuran posisi dan efisiensi penggunaan modal sesuai dengan kapitalisasi pasar, volatilitas dll.
  3. Mengadopsi gerakan asimetris berdasarkan tahap pasar, mengurangi perdagangan selama pasar yang terikat rentang dan meningkatkan ukuran posisi selama tren yang jelas.

Arahan Optimasi

  1. Mengoptimalkan kuantitas beli/jual. Secara dinamis menyesuaikan ukuran posisi berdasarkan stop loss.
  2. Mengoptimalkan parameter MA. Menemukan parameter yang lebih baik melalui optimasi berjalan maju dan optimasi acak.
  3. Menambahkan strategi stop loss. Memindahkan stop loss atau stop limit order lebih melindungi keuntungan.
  4. Tambahkan manajemen ukuran posisi. Sesuaikan secara dinamis ukuran posisi per perdagangan berdasarkan ukuran modal, kapitalisasi pasar dll.

Ringkasan

Ini adalah strategi crossover rata-rata bergerak ganda yang khas. Ide utamanya adalah mengikuti tren dengan menetapkan posisi ketika harga melintasi garis MA. Strategi ini sederhana dan praktis untuk diterapkan. Sementara itu, ada ruang untuk optimasi lebih lanjut, dengan penyesuaian parameter, stop loss, ukuran posisi dll untuk mencapai hasil yang lebih baik.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60 TW", overlay=true, margin_long=100, margin_short=100)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) and time >= start_time
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) and time >= start_time
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) and time >= start_time
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) and time >= start_time
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     

Lebih banyak