Strategi silang purata bergerak berganda

Penulis:ChaoZhang, Tarikh: 2023-11-21 11:34:09
Tag:

img

Ringkasan

Dual Moving Average Crossover Strategy adalah strategi trend berikut yang tipikal. Ia mengira dua purata bergerak dengan tempoh yang berbeza dan menggunakan persilangan mereka sebagai isyarat perdagangan untuk menangkap arah dan momentum trend pasaran.

Logika Strategi

Strategi ini terutamanya berdasarkan dua purata bergerak. purata bergerak pertama mempunyai tempoh yang lebih pendek dan boleh bertindak balas terhadap perubahan harga dengan lebih cepat. purata bergerak kedua mempunyai tempoh yang lebih lama dan boleh menapis beberapa bunyi bising. Apabila purata bergerak jangka pendek melintasi purata bergerak jangka panjang, ia dianggap isyarat beli. Apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang, ia dianggap isyarat jual.

Secara khusus, strategi ini mengira purata bergerak eksponensial 10 tempoh (harga1) dan purata bergerak eksponensial 20 tempoh (harga2). Jika harga buka dan penutupan bar semasa sama-sama lebih tinggi daripada dua purata bergerak, isyarat beli dihasilkan. Jika harga buka dan penutupan sama-sama lebih rendah daripada dua purata bergerak, isyarat jual dihasilkan.

Reka bentuk ini membolehkan kemasukan lebih awal apabila trend mula terbentuk dan mengikuti trend. Apabila trend berbalik, ia juga boleh keluar dari pasaran lebih awal untuk mengawal risiko dengan berkesan.

Kelebihan

  • Mengesan trend awal dan mengikuti trend yang kuat
  • Penapis crossover MA berganda bising
  • Pengesahan dua kali daripada harga terbuka dan tutup mengurangkan perdagangan yang tidak berkesan

Risiko

  • Rendah kepada whipsaws dan perdagangan terbalik
  • Isyarat silang yang kerap mungkin berlaku
  • Ruang penyesuaian parameter yang besar boleh membawa kepada pemasangan berlebihan

Peningkatan

  • Uji set parameter yang berbeza untuk mencari optimum
  • Tambah stop loss kepada saiz limit loss
  • Tambah penapis untuk mengurangkan perdagangan buruk
  • Gabungkan penunjuk lain untuk mengesahkan isyarat

Ringkasan

Strategi ini agak mudah dan praktikal, menangkap trend dengan silang MA berganda, menjadikannya strategi kuantum asas. Tetapi ia juga mempunyai beberapa risiko dan memerlukan pengoptimuman lanjut untuk rejimen pasaran yang berbeza. Terdapat ruang untuk meningkatkan parameter, berhenti, penapis dll untuk menjadikannya lebih mantap.


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

//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])

ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)  
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)    
if(buy_entry)
    strategy.entry("Long", strategy.long)
    
if(sell_entry)
    strategy.entry("Short", strategy.short)

strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)



Lebih lanjut