Strategi Purata Pergerakan Berganda


Tarikh penciptaan: 2023-11-21 11:34:09 Akhirnya diubah suai: 2023-11-21 11:34:09
Salin: 0 Bilangan klik: 561
1
fokus pada
1617
Pengikut

Strategi Purata Pergerakan Berganda

Gambaran keseluruhan

Strategi penembusan rata-rata bergerak ganda adalah strategi pengesanan trend yang lebih tipikal. Ia menangkap arah dan kekuatan trend pasaran dengan mengira rata-rata bergerak dua kitaran yang berbeza dan menyeberangnya sebagai isyarat membeli dan menjual.

Prinsip Strategi

Strategi ini adalah berdasarkan kepada dua purata bergerak: purata bergerak pertama mempunyai kitaran yang lebih pendek, yang dapat bertindak balas lebih cepat terhadap perubahan harga; purata bergerak kedua mempunyai kitaran yang lebih lama, yang dapat menyaring sebahagian daripada kebisingan. Apabila rata-rata bergerak jangka pendek melintasi rata-rata bergerak jangka panjang, ia dianggap sebagai isyarat membeli; apabila rata-rata bergerak jangka pendek melintasi rata-rata bergerak jangka panjang, ia dianggap sebagai isyarat menjual.

Khususnya, strategi ini mengira purata bergerak indeks 10 kitaran ((price1)) dan purata bergerak indeks 20 kitaran ((price2)). Jika harga pembukaan dan penutupan K baris semasa adalah lebih tinggi daripada dua purata bergerak, maka ia akan menghasilkan isyarat beli. Jika harga pembukaan dan penutupan K baris semasa adalah lebih rendah daripada dua purata bergerak, maka ia akan menghasilkan isyarat jual.

Dengan reka bentuk seperti itu, anda boleh memasuki pasaran lebih awal apabila trend mula terbentuk, dan mengikuti trend; apabila trend berbalik, anda juga boleh keluar dari pasaran secepat mungkin, dan mengawal risiko dengan berkesan.

Kelebihan Strategik

  • Menangkap Trend Pada Awal, Mengesan Trend Yang Kuat
  • Penapisan dua hala, mengelakkan beberapa penembusan palsu
  • K-Line harga pembukaan dan harga penutupan dua kali disahkan, mengurangkan perdagangan yang tidak sah

Risiko Strategik

  • Strategi dua garis lurus mudah menghasilkan lebih banyak perdagangan terbalik
  • Isyarat silang yang kerap mungkin berlaku semasa operasi dua hala
  • Ruang untuk mengoptimumkan parameter yang besar, pengoptimuman yang tidak betul boleh menyebabkan overfit

Arah pengoptimuman strategi

  • Uji kombinasi parameter yang berbeza untuk mencari parameter yang optimum
  • Meningkatkan strategi hentikan kerugian dan mengurangkan saiz kerugian tunggal
  • Meningkatkan syarat penapisan dan mengurangkan transaksi yang tidak sah
  • Kesan pengesahan isyarat dalam kombinasi dengan penunjuk lain

ringkaskan

Strategi ini agak mudah untuk digunakan secara keseluruhan, menangkap trend melalui prinsip persilangan dua persamaan, merupakan strategi asas untuk perdagangan kuantitatif. Tetapi strategi ini juga mempunyai risiko tertentu, dan memerlukan pengoptimuman lanjut untuk menyesuaikan diri dengan keadaan pasaran yang berbeza. Terdapat ruang untuk pengoptimuman dalam aspek penyesuaian parameter, mekanisme hentikan kerugian, penapisan isyarat, dan sebagainya, yang dapat menjadikan strategi lebih stabil dan boleh dipercayai.

Kod sumber strategi
/*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)