Strategi Penembusan Volatiliti Harga Berdasarkan Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-12-08 16:44:22
Tag:

img

Ringkasan

Idea utama strategi ini adalah untuk menggunakan turun naik harga untuk menilai trend pasaran. Apabila turun naik, ia bermakna pasaran membentuk trend baru. Dan apabila turun naik, ia bermakna trend semasa berakhir. Strategi ini mengira perubahan peratusan harga dan kemudian menapisnya dengan purata bergerak berganda untuk mendapatkan penunjuk yang mencerminkan turun naik harga. Ia menghasilkan isyarat beli apabila penunjuk melintasi di atas garis isyaratnya, dan menjual isyarat apabila melintasi di bawah.

Logika Strategi

Strategi pertama mengira perubahan peratusan harga:

i=(src/nz(src[1], src))*100

Kemudian ia menapis i dengan purata bergerak 35 tempoh untuk mendapatkan penunjuk turun naik awal pmol2. Pmol2 disaring semula dengan purata bergerak 20 tempoh untuk mendapatkan penunjuk akhir pmol. Akhirnya, purata bergerak 10 tempoh pmol digunakan sebagai garis isyarat pmols. Beli apabila pmol melintasi di atas pmols dan jual apabila melintasi di bawah.

Analisis Kelebihan

  • Penapisan MA berganda mengeluarkan volatiliti dengan baik dan menapis bunyi bising.
  • Mengira perubahan peratusan memperkuat pergerakan harga, menjadikan perubahan trend lebih kelihatan.
  • Model keuntungan jelas: beli pada permulaan trend, jual pada akhir trend.

Analisis Risiko

  • Penapisan berganda menyebabkan beberapa kelewatan.
  • Pengiraan perubahan peratusan sensitif kepada amplitud harga.
  • Perlu keluar tepat pada masanya pada peralihan bull-bear.

Arahan pengoptimuman

  • Mengoptimumkan parameter MA untuk meningkatkan trend menangkap.
  • Cuba kaedah pengiraan perubahan harga yang berbeza.
  • Tambah penapis untuk mengelakkan isyarat yang salah.

Ringkasan

Strategi ini menggunakan perubahan peratusan dan penapisan MA berganda untuk mengekstrak turun naik harga dan menilai perubahan trend. Ia tergolong dalam strategi penunjuk teknikal yang agak matang. Strategi ini mempunyai keupayaan menangkap trend yang baik tetapi keupayaan pengenalan titik balik sederhana.


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

//@version=2
strategy("Strategy for DPMO", overlay=true)

src=input(close, title="Source")
length1=input(35, title="First Smoothing")
length2=input(20, title="Second Smoothing")
siglength=input(10, title="Signal Smoothing")
ebc=input(false, title="Enable Bar Colors")

upSign = '↑' // indicates the indicator shows uptrend
downSign = '↓' // incicates the indicator showing downtrend
exitSign ='x' //indicates the indicator uptrend/downtrend ending

calc_csf(src, length) => 
	sm = 2.0/length
	csf=(src - nz(csf[1])) * sm + nz(csf[1])
	csf
i=(src/nz(src[1], src))*100
pmol2=calc_csf(i-100, length1)
pmol=calc_csf( 10 * pmol2, length2)
pmols=ema(pmol, siglength)
d=pmol-pmols
hc=d>0?d>d[1]?lime:green:d<d[1]?red:orange

buyDPMO = hc==lime and hc[1]!=lime
closeBuyDPMO = hc==green and hc[1]!=green
sellDPMO = hc==red and hc[1]!=red
closeSellDPMO = hc==orange and hc[1]!=orange

plotshape(buyDPMO, color=lime, style=shape.labelup, textcolor=#000000, text="DPMO", location=location.belowbar, transp=0)
plotshape(closeBuyDPMO, color=green, style=shape.labelup, textcolor=#ffffff,  text="X", location=location.belowbar, transp=0)
plotshape(sellDPMO, color=red, style=shape.labeldown, textcolor=#000000, text="DPMO", location=location.abovebar, transp=0)
plotshape(closeSellDPMO, color=orange, style=shape.labeldown, textcolor=#ffffff,  text="X", location=location.abovebar, transp=0)
barcolor(ebc?hc:na)


strategy.entry("Long", strategy.long, when=buyDPMO)
strategy.close("Long", when=closeBuyDPMO or sellDPMO)   
strategy.entry("Short", strategy.short, when=sellDPMO)
strategy.close("Short", when=closeSellDPMO or buyDPMO)  


Lebih lanjut