Dual Moving Average Golden Cross Strategi Kuantitatif

Penulis:ChaoZhang, Tarikh: 2023-12-26 15:52:13
Tag:

img

Ringkasan

Strategi ini menilai trend harga dan peluang dagangan dengan mengira crossover purata bergerak berganda. Apabila MA pantas melintasi di atas MA perlahan, ia dianggap sebagai salib emas untuk pergi lama. Apabila MA pantas melintasi di bawah MA perlahan, ia dianggap sebagai salib kematian untuk pergi pendek. Pada masa yang sama, menggabungkan Penunjuk Volume untuk menilai kebolehpercayaan crossover untuk mengelakkan isyarat palsu.

Prinsip Strategi

Prinsip-prinsip utama strategi ini ialah:

  1. Mengira dua kumpulan purata bergerak dengan parameter yang berbeza, satu kumpulan bertindak balas dengan cepat terhadap perubahan harga dan yang lain bertindak balas agak perlahan. Apabila MA cepat melintasi di atas MA perlahan, ia menandakan trend harga menaik. Apabila MA cepat melintasi di bawah MA perlahan, ia menandakan trend harga menurun.

  2. Apabila MAs menyeberang, periksa perubahan Penunjuk Volume. Jika Penunjuk Volume juga pecah dengan ketara, isyarat silang boleh dipercayai. Jika tidak ada pecah yang sepadan dalam Volume, ia mungkin isyarat palsu.

  3. Masukkan kedudukan panjang atau pendek berdasarkan penilaian arah silang dan jumlah. Tetapkan kriteria keuntungan untuk menutup kedudukan apabila mencapai tahap keuntungan tertentu.

Secara khusus, strategi ini menilai trend harga menggunakan crossover MAs berganda 7-periode. Ia menggunakan penunjuk Volume untuk memeriksa kebolehpercayaan isyarat. Apabila mendapat isyarat yang boleh dipercayai, ia pergi panjang atau pendek mengikut isyarat. Ia menetapkan sasaran keuntungan untuk mengambil keuntungan.

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Menggabungkan dua MAs untuk menentukan arah trend dan penapis Volume untuk mengelakkan isyarat palsu dan terperangkap.

  2. Hanya mengambil kedudukan apabila Volume mengesahkan, meningkatkan kadar kejayaan.

  3. Mempunyai mekanisme mengambil keuntungan untuk mengambil keuntungan tepat pada masanya dan mengelakkan memberikan kembali keuntungan.

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Tunda penyeberangan MA mungkin terlepas peluang terbaik. boleh mengoptimumkan parameter untuk membuat MA lebih sensitif.

  2. Sukar untuk menilai apabila Volume menyimpang.

  3. Tetapan stop profit yang tidak betul boleh menyebabkan terlalu banyak perdagangan atau memegang pemenang terlalu lama.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dari aspek berikut:

  1. Mengoptimumkan tempoh MA untuk menjadikannya lebih responsif untuk menangkap perubahan harga dalam masa.

  2. Tambah lebih banyak penunjuk seperti MACD, KD untuk pengesahan isyarat untuk mengelakkan isyarat palsu Volume.

  3. Masukkan lebih banyak mekanisme mengambil keuntungan seperti hentian jejak, hentian peratusan, hentian turun naik untuk mengambil keuntungan dinamik.

  4. Tambah mekanisme stop loss untuk mengawal jumlah kerugian perdagangan tunggal.

  5. Mengoptimumkan saiz kedudukan yang dapat disesuaikan dengan persekitaran pasaran yang berbeza.

Kesimpulan

Kesimpulannya, idea utama strategi ini adalah menggunakan persilangan MA berganda untuk trend dan penapis Volume untuk kebolehpercayaan isyarat. Ia stabil dan mudah dilaksanakan. Pengoptimuman lanjut pada parameter, penapisan isyarat, mengambil keuntungan dan menghentikan kerugian dapat menjadikannya lebih boleh dipercayai dan pintar untuk perdagangan praktikal.


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

//@version=2
strategy("ZendicatoR", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15, pyramiding=0)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
sma1=sma(close,11)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
Q=n1>n2?blue:yellow
plot(sma1,style=line,color=Q,linewidth=4)
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)

Lebih lanjut