Strategi Pemecahan Purata Pergerakan Berganda Berdasarkan Kemeruapan Harga


Tarikh penciptaan: 2023-12-08 16:44:22 Akhirnya diubah suai: 2023-12-08 16:44:22
Salin: 0 Bilangan klik: 637
1
fokus pada
1621
Pengikut

Strategi Pemecahan Purata Pergerakan Berganda Berdasarkan Kemeruapan Harga

Gambaran keseluruhan

Idea teras strategi ini adalah menggunakan kadar turun naik harga untuk menilai trend pasaran, apabila kadar turun naik, menunjukkan bahawa pasaran sedang membentuk trend baru; apabila kadar turun naik, menunjukkan bahawa trend semasa sedang berakhir. Strategi ini menghasilkan indikator yang mencerminkan kadar turun naik harga dengan mengira peratusan perubahan harga, dan kemudian menyaringnya dengan penyaringan dua hala.

Prinsip Strategi

Strategi ini mulakan dengan mengira peratusan perubahan harga:

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

Kemudian melalui satu gelombang rata-rata panjang 35 untuk mendapatkan indikator harga turun naik primer pmol2. Kemudian melalui satu gelombang rata-rata panjang 20 untuk mendapatkan indikator turun naik harga akhir pmol2. Akhirnya, melalui satu gelombang rata-rata panjang 10 untuk mendapatkan garis isyarat pmol.

Analisis kelebihan

  • Menggunakan penapis dua hala yang sama, anda dapat mengekstrak kadar turun naik harga dengan lebih baik, menapis kebisingan.
  • Mengira peratusan perubahan harga, yang dapat meningkatkan perubahan harga dan lebih jelas mencerminkan perubahan trend.
  • Kaedah keuntungan lebih jelas: trend bermula dengan pembelian, dan berakhir dengan penjualan.

Analisis risiko

  • Waveforms akan membawa kepada ketidakseimbangan.
  • Kaedah peratusan perubahan adalah lebih sensitif terhadap harga.
  • Apabila anda menukar lembu dan beruang, anda perlu membayar hutang anda tepat pada masanya.

Arah untuk dioptimumkan:

  • Mengoptimumkan parameter garis rata-rata untuk menangkap trend.
  • Cuba cara yang berbeza untuk mengira perubahan harga.
  • Menambah syarat penapisan untuk mengelakkan isyarat yang salah.

ringkaskan

Strategi ini adalah strategi yang lebih matang dalam kategori penunjuk teknikal untuk menilai perubahan trend pasaran dengan cara mengira perubahan peratusan dan penyaringan dua hala yang sama. Strategi ini mempunyai keupayaan yang kuat untuk menangkap trend, tetapi keupayaan untuk mengenal pasti titik peralihan secara umum.

Kod sumber strategi
/*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)