Strategi Trend Penembusan Rintangan Sokongan Dinamik

Penulis:ChaoZhang, Tarikh: 2023-12-26 15:21:45
Tag:

img

Ringkasan

Strategi ini menilai arah trend berdasarkan pecah sokongan / rintangan jangka panjang dan memasuki kedudukan apabila sokongan / rintangan dipecahkan. Ia menggunakan zigzag untuk menentukan puncak dan lembah, mengesahkan puncak / lembah dengan 2 bar, jadi terdapat kelewatan 2 bar. Ia mengira perbezaan antara SMA puncak dan lembah dalam tempoh yang ditentukan (21 secara lalai) sebagai tahap SR alternatif. Idea ini berasal dari indikator Nebula-Advanced-Dynamic-Support-Resistance SynapticEx. Ia pergi lama apabila rintangan dipecahkan dan pergi pendek apabila sokongan dipecahkan.

Logika Strategi

Strategi ini menggunakan logik berikut untuk menentukan trend dan isyarat perdagangan:

  1. Memastikan puncak / lembah dengan zigzag: apabila dalam 5 bar terakhir, bar 5 puncak < bar 4 puncak < bar 3 puncak > bar 2 puncak > bar 1 puncak, bar 3 lembah disahkan sebagai lembah terendah. Memastikan puncak tertinggi dengan cara yang sama.

  2. Mengira bilangan puncak hn dan lembah ln dalam tempoh yang ditakrifkan (default 21). Jika hn>0 dan ln>0, mengira paras purata puncak hsum/hn dan paras purata lembah lsum/ln. Perbezaannya r digunakan sebagai paras SR alternatif.

  3. Membandingkan harga penutupan dengan rintangan dinamik lvalr dan sokongan hvalr untuk menentukan arah trend.

  4. Pergi panjang apabila penembusan rintangan yang sah berlaku. Pergi pendek apabila penembusan sokongan yang sah berlaku.

Analisis Kelebihan

Kelebihan strategi ini:

  1. Menggunakan zigzag untuk mengesahkan SR memberikan ketepatan, mengelakkan pemasangan palsu.

  2. SR berdasarkan statistik jangka panjang lebih berharga untuk mengurangkan risiko.

  3. SR alternatif meningkatkan kesahihan isyarat pecah.

  4. Logiknya mudah dan mudah difahami, sesuai untuk perdagangan kuant.

  5. Tempoh statistik yang boleh disesuaikan sesuai dengan kitaran dan produk yang berbeza.

Analisis Risiko

Risiko strategi ini:

  1. 2 bar lag dengan zigzag mungkin terlepas titik masuk terbaik.

  2. Ramalan SR hanya untuk rujukan, penyemburan yang tidak normal masih boleh berlaku.

  3. Tempoh statistik yang tidak betul membawa kepada SR yang tidak sah.

  4. Penarikan harga selepas pecah boleh mencetuskan stop loss.

  5. Perubahan harga yang ganas selepas masuk membawa kerugian yang lebih besar.

Penyelesaian adalah:

  1. Memendekkan tempoh statistik dengan betul untuk mengurangkan lag.

  2. Gabungkan lebih banyak faktor untuk meramalkan SR.

  3. Stabiliti ujian tempoh yang berbeza.

  4. Tetapkan tahap stop loss yang munasabah.

  5. Gunakan saiz kedudukan untuk mengehadkan kerugian tunggal.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dari aspek berikut:

  1. Gunakan pembelajaran mesin untuk meramalkan SR, meningkatkan kadar kejayaan isyarat pecah.

  2. Gabungkan jumlah CONF untuk mengesahkan keabsahan isyarat pecah.

  3. Mengelaskan statistik SR berdasarkan kitaran yang berbeza, meningkatkan kecekapan SR.

  4. Tambah kedudukan pada keuntungan, menetapkan hentian jejak untuk mengimbangi keuntungan / kerugian.

  5. Menggabungkan MA untuk menentukan trend, mengelakkan buta panjang / pendek tanpa trend.

Kesimpulan

Kesimpulannya, ini adalah strategi trend berikut yang kuat. Ia mempunyai ketepatan yang tinggi dalam menentukan arah trend dan kawalan risiko yang betul. Tetapi kelewatan menjadikannya mustahil untuk mendapat keuntungan dari setiap isyarat panjang / pendek. Jadi ia sesuai dengan peniaga kuant yang berpengalaman untuk digabungkan dengan strategi mereka sendiri. Dengan mengoptimumkan tempoh statistik dan mengintegrasikan penunjuk atau model lain, ia boleh menjadi strategi trend berikut yang cekap.


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

//@version=4
strategy("SR TREND STRATEGY", shorttitle="SR TREND", overlay=true, calc_on_order_fills=true)
//based on by synapticEx SR indicator https://www.tradingview.com/script/O0F675Kv-Nebula-Advanced-Dynamic-Support-Resistance/
length = input(title="SR lookbak length", type=input.integer, defval=21)
h = bar_index>5 and high[5]<high[4] and high[4]<high[3] and high[3]>high[2] and high[2]>high[1] ? 1 : 0
l = bar_index>5 and low[5]>low[4]   and low[4]>low[3]   and low[3]<low[2]   and low[2]<low[1]   ? 1 : 0
ln = sum(l, length)
hn = sum(h, length)
hval =  h>0 ? high[3] : 0
lval =  l>0 ? low[3]  : 0
lsum = sum(lval, length)
hsum = sum(hval, length)
r = ln>0 and hn>0 ? abs((hsum/hn) - (lsum/ln)): 0
float lvalc = na
float lvalr = na
float hvalc = na
float hvalr = na
lvalc := lval and r>0 ? lval   : lvalc[1]
lvalr := lval and r>0 ? lval+r : lvalr[1]
hvalc := hval and r>0 ? hval   : hvalc[1]
hvalr := hval and r>0 ? hval-r : hvalr[1]
int trend=0
trend:=close > lvalr and close > hvalr ? 1 : close < lvalr and close < hvalr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and close>hvalc)
strategy.entry("Short", strategy.short, when=trend==-1 and close<lvalc)
int long=0
int short=0
long:= trend==1 and close>hvalc ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and close<lvalc ? 1 : trend==1 ? -1 : short[1]
barcolor(long>0? color.green : short>0? color.red : trend>0? color.white: trend<0 ? color.orange : color.blue)

Lebih lanjut