Strategi perdagangan kuantitatif berdasarkan operasi purata bergerak bulanan


Tarikh penciptaan: 2023-12-15 11:49:06 Akhirnya diubah suai: 2023-12-15 11:49:06
Salin: 2 Bilangan klik: 654
1
fokus pada
1621
Pengikut

Strategi perdagangan kuantitatif berdasarkan operasi purata bergerak bulanan

Gambaran keseluruhan

Strategi ini beroperasi berdasarkan garis rata pada garis bulan dan garis suku, khususnya pada garis 20 sebagai garis bulan, garis 60 sebagai garis suku, dan isyarat strategi berasal dari dua garis rata. Apabila melewati garis bulan, longing, membentuk isyarat multihead; Apabila melewati garis suku di bawah garis bulan, melakukan pelepasan simpanan bersih.

Prinsip Strategi

Strategi ini menggunakan purata bergerak mudah 20 hari sebagai penunjuk garis bulan dan purata bergerak mudah 60 hari sebagai penunjuk garis suku. Logik penjanaan isyarat dagangan khusus adalah seperti berikut:

  1. Apabila garis 20 hari melewati garis 60 hari, iaitu apabila berlaku garpu emas, buatlah lebih banyak masuk.
  2. Apabila harga saham kembali lebih daripada 10% dari titik tertinggi dalam 10 hari, kedudukan yang tenang akan berhenti.
  3. Apabila 20 hari di bawah garis melintasi garis 60 hari, iaitu apabila berlaku dead fork, bersihkan dan ratahkan kedudukan.
  4. Apabila kerugian mencapai 10%, berhentilah bermain.

Mengambil trend garis tengah panjang dengan meneliti persimpangan garis rata bulan dan garis suku, garpu emas lebih masuk ke pasaran lembu garis tengah panjang, garpu mati lebih masuk ke pasaran beruang garis tengah panjang. Ia juga menggabungkan strategi hentian dan hentian untuk mengawal risiko.

Kelebihan Strategik

  1. Menggunakan garis purata bulanan, menapis bunyi pasaran, dan menangkap trend garis panjang dan tengah.
  2. Parameter strategi mudah dan mudah dilaksanakan.
  3. Parameter Stop Loss boleh dikonfigurasi untuk mengawal risiko.

Analisis risiko

  1. Tidak dapat menentukan titik perubahan trend, ada risiko kerugian.
  2. Garis bulan dan garis rata-rata suku terlewat, mungkin kehilangan peluang garis pendek.
  3. Ia perlu memilih titik henti yang sesuai untuk mengelakkan terlalu radikal.

Penyelesaian:

  1. Menggunakan pengesanan henti mudah alih, hentikan kerugian tepat pada masanya.
  2. Ia boleh digunakan untuk menyaring isyarat dan menentukan trend, digabungkan dengan petunjuk lain.
  3. Menyesuaikan parameter garis purata, strategi pengoptimuman.

Arah pengoptimuman strategi

  1. Tambah penapis untuk penunjuk lain, seperti penunjuk KD, untuk mengelakkan penembusan palsu.
  2. Mengoptimumkan parameter garis purata untuk mencari kombinasi tempoh garis purata yang terbaik.
  3. Tambah strategi penangguhan, seperti penangguhan bergerak, untuk mendapatkan lebih banyak keuntungan.

ringkaskan

Strategi ini Overall XXXXX sistematically menggunakan kelebihan garis rata-rata bulan-kuartal, dengan garpu emas perak yang rata untuk menilai arah trend garis panjang tengah. Pada masa yang sama, konfigurasi yang munasabah mekanisme pengendalian risiko berhenti. Strategi ruang pengoptimuman masih besar, bernilai pengoptimuman ujian lebih lanjut.

Kod sumber strategi
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("均線操作-月季", overlay=true, initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30)
sma20 = sma(close, 20)
sma60 = sma(close, 60)

plot(sma20, title="月線", color=color.purple,linewidth=2)
plot(sma60, title="季線", color=color.yellow,linewidth=2)

backtest_year = input(title="backtest_year",type=input.integer,defval=2020)
backtest_month = input(title="backtest_month",type=input.integer,defval=10)
backtest_date = input(title="backtest_date",type=input.integer,defval=1)
backtest_start_time = timestamp(backtest_year,backtest_month,backtest_date,0,0,0)

to_long = sma20 > sma60  and close > highest(10)*0.9 // 黃金交叉
to_close = sma20 < sma60 // 死亡交叉
to_exit = close < highest(10)*0.9 //股價嚴重回檔
to_stop = close < 0.9*strategy.position_avg_price 

// to_long = crossover(sma20, sma60)   // 黃金交叉
// to_close = crossunder(sma20, sma60) // 死亡交叉

//plotchar(to_long, char="B", text="買", color=color.red, location=location.belowbar)
//plotchar(to_close, char="S", text="賣", color=color.green, location=location.abovebar)
//strategy.close("open long",when = tslide, comment="多單滑價7%出場")
if true
    strategy.entry("golden", strategy.long,  when=to_long,comment="多單入場")
    strategy.close("golden",  when=to_exit,comment="多單滑價7%出場")
    strategy.close("golden",  when=to_close,comment="月線季線死亡交叉")
    strategy.close("golden",  when=to_stop,comment="虧損10%強迫停損")