Strategi price volatility breakout berdasarkan rata-rata bergerak ganda

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

img

Gambaran umum

Ide inti dari strategi ini adalah menggunakan volatilitas harga untuk menilai tren pasar. Ketika volatilitas naik, itu berarti pasar membentuk tren baru. Dan ketika volatilitas menurun, itu berarti tren saat ini berakhir. Strategi menghitung perubahan persentase harga dan kemudian menyaringnya dengan rata-rata bergerak ganda untuk mendapatkan indikator yang mencerminkan volatilitas harga. Ini menghasilkan sinyal beli ketika indikator melintasi di atas garis sinyalnya, dan menjual sinyal ketika melintasi di bawah.

Logika Strategi

Strategi pertama menghitung persentase perubahan harga:

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

Kemudian ia menyaring i dengan rata-rata bergerak 35 periode untuk mendapatkan indikator volatilitas awal pmol2. Pmol2 disaring lagi dengan rata-rata bergerak 20 periode untuk mendapatkan indikator akhir pmol. Akhirnya, rata-rata bergerak 10 periode pmol digunakan sebagai garis sinyal pmols. Beli ketika pmol melintasi di atas pmols dan jual saat melintasi di bawah.

Analisis Keuntungan

  • Filter MA ganda mengekstrak volatilitas dengan baik dan menyaring kebisingan.
  • Menghitung perubahan persentase memperkuat pergerakan harga, membuat perubahan tren lebih terlihat.
  • Model keuntungan jelas: beli pada awal tren, jual pada akhir tren.

Analisis Risiko

  • Penyaringan ganda menyebabkan beberapa keterlambatan.
  • Perhitungan perubahan persentase sensitif terhadap amplitudo harga.
  • Perlu keluar tepat waktu pada transisi banteng-beruang.

Arahan Optimasi

  • Mengoptimalkan parameter MA untuk meningkatkan penangkapan tren.
  • Cobalah metode perhitungan perubahan harga yang berbeda.
  • Tambahkan filter untuk menghindari sinyal yang salah.

Ringkasan

Strategi ini menggunakan perubahan persentase dan penyaringan MA ganda untuk mengekstrak volatilitas harga dan menilai perubahan tren. Ini termasuk dalam strategi indikator teknis yang relatif matang. Strategi ini memiliki kemampuan menangkap tren yang baik tetapi kemampuan pengenalan titik balik sedang. Dapat mengoptimalkan melalui penyesuaian parameter dan menambahkan kondisi tambahan.


/*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 banyak