Purata bergerak strategi panjang dan pendek


Tarikh penciptaan: 2023-10-09 16:00:02 Akhirnya diubah suai: 2023-10-09 16:00:02
Salin: 0 Bilangan klik: 617
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini adalah strategi multi-space berdasarkan purata bergerak. Ia menggunakan 3 purata bergerak dengan parameter yang berbeza untuk menghasilkan isyarat dagangan. Apabila harga naik melalui purata bergerak, lakukan lebih banyak, dan apabila turun, lakukan kosong.

Prinsip Strategi

Strategi ini menggunakan fungsi sma untuk mengira purata bergerak yang panjangnya adalah len, iaitu ma. Kemudian, berdasarkan ma, ia mengira purata bergerak dalam tiga peratusan yang berbeza, iaitu longline1, longline2, dan longline3. Di antaranya, longline1 bergerak -4, longline2 bergerak -5, dan longline3 bergerak -6.

Pada masa menghasilkan isyarat beli, jika tidak ada kedudukan pada masa ini, buka lebih banyak kedudukan apabila harga melewati longline 1; jika sudah ada kedudukan tangan 1, buka lagi tangan 1 apabila harga melewati longline 2; jika sudah ada kedudukan tangan 2, buka lagi tangan 1 apabila harga melewati longline 3, memegang maksimum 3 tangan lebih banyak kedudukan.

Apabila isyarat jual dihasilkan, jika anda memegang lebih banyak kedudukan pada masa ini, anda akan meletakkan lebih sedikit kedudukan apabila harga turun.

Strategi ini boleh dilakukan dengan mengelaskan dalam kumpulan untuk mencapai kesan pengesanan trend.

Kelebihan Strategik

  • Menggunakan purata bergerak untuk menentukan arah trend, dapat menyaring bunyi pasaran dengan berkesan, menstabilkan keuntungan
  • Lebih banyak shorting dalam kumpulan, lebih banyak keuntungan dalam trend
  • Sebagai titik masuk, rata-rata bergerak lebih baik untuk mengesan trend
  • Pengunduran agak kecil, pengunduran maksimum dikawal kira-kira 20%

Risiko Strategik

  • Strategi ini adalah strategi trend semata-mata, mudah untuk dipenjarakan apabila pasaran diuruskan.
  • Rata-rata bergerak menghasilkan kelewatan isyarat dan mungkin terlepas titik peralihan trend
  • Lebih mudah untuk mengejar dan membunuh dalam kumpulan, lebih berisiko
  • Tidak ada strategi stop loss yang boleh menyebabkan kerugian yang lebih besar sekiranya berlaku sesuatu yang tidak dijangka

Penyelesaian risiko:

  • Ia boleh digabungkan dengan petunjuk lain untuk menentukan titik perubahan trend.
  • Tetapkan parameter purata bergerak yang munasabah, jangan terlalu lama, jika tidak, isyarat akan terlewat
  • Mengurangkan jumlah batch yang berlebihan dengan sewajarnya untuk mengelakkan kenaikan
  • Tambah Stop Loss Bergerak untuk Kawal Kerugian

Arah pengoptimuman strategi

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menambah penghakiman indikator lain untuk menentukan arah trend, seperti penambahan MACD untuk menilai trend yang kuat

  2. Mengoptimumkan parameter purata bergerak untuk mencari kombinasi parameter yang optimum

  3. Menyesuaikan jumlah dan perkadaran kerja berlebihan untuk mengelakkan penangkapan.

  4. Menambah mekanisme hentian bergerak, yang boleh menetapkan titik hentian berdasarkan ATR

  5. Anda boleh menyesuaikan nombor kedudukan mengikut kadar turun naik pasaran yang dinamik, mengurangkan kedudukan apabila turun naik besar

  6. Uji kesan parameter pelbagai jenis untuk mencari jenis yang paling sesuai dengan strategi

  7. Membangunkan modul Exit untuk mempertimbangkan penundaan keluar apabila bentuk tertentu muncul

ringkaskan

Secara keseluruhannya, strategi ini menggunakan purata bergerak untuk menentukan arah trend untuk berdagang, dengan melakukan satu-satunya peringkat peringkat yang boleh menjejaki trend untuk mendapatkan keuntungan. Tetapi terdapat sedikit ketinggalan, mengejar risiko yang tinggi. Kita boleh mengoptimumkan strategi ini dengan cara menambahkan indikator penilaian tambahan, parameter pengoptimuman, menyesuaikan pengurusan kedudukan, menambah mekanisme hentikan kerugian, dan sebagainya, supaya dapat menyesuaikan diri dengan keadaan pasaran yang berbeza, untuk mencapai keuntungan yang stabil dan terkawal.

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

//Noro
//2019

//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Lenghs")
src = input(ohlc4, title = "MA Source")
longlevel1 = input(-4.0, title = "Long line 1")
longlevel2 = input(-5.0, title = "Long line 2")
longlevel3 = input(-6.0, title = "Long line 3")
needoffset = input(true, title = "Offset")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick

//MA
ma = sma(src, len)
longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult
longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult
longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult

//Lines
offset = needoffset ? 1 : 0
plot(ma, color = color.blue)
plot(longline1, offset = offset, color = color.lime)
plot(longline2, offset = offset, color = color.lime)
plot(longline3, offset = offset, color = color.lime)

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2))
if size > 0
    strategy.entry("TP", strategy.short, 0, limit = ma)