Strategi Perdagangan Kuantitatif Osilator Harga

Penulis:ChaoZhang, Tarikh: 2023-11-24 11:22:30
Tag:

Ringkasan Strategi

Strategi ini dinamakan Detrended Price Oscillator Quantitative Trading Strategy. Ia menjana isyarat perdagangan berdasarkan penunjuk Detrended Price Oscillator, yang merupakan strategi penunjuk teknikal biasa.

Logika Strategi

Inti strategi ini adalah penunjuk Detrended Price Oscillator (DPO). DPO adalah serupa dengan purata bergerak, yang boleh menapis trend jangka panjang dalam harga untuk menjadikan turun naik kitaran lebih ketara. Khususnya, DPO membandingkan harga dengan purata bergerak mudah N-hari mereka. Apabila harga di atas purata bergerak, DPO positif; apabila harga di bawah purata bergerak, DPO negatif. Ini menghasilkan pengayun berfluktuasi di sekitar paksi 0.

Strategi ini menetapkan parameter N kepada 14 dan membina penunjuk DPO 14 hari. Apabila DPO positif, isyarat panjang dikeluarkan. Apabila DPO negatif, isyarat pendek dikeluarkan.

Kelebihan

  • DPO pada dasarnya adalah penapis penapis yang dapat mengenal pasti kitaran harga jangka menengah dengan berkesan.
  • DPO mempunyai pembinaan mudah dan mudah difahami. Pilihan parameter juga agak fleksibel.
  • Berbanding dengan harga itu sendiri, corak penunjuk DPO lebih standard dan lebih mudah dinilai, menjadikannya sesuai untuk merumuskan peraturan.

Risiko

  • Seperti kebanyakan strategi penunjuk teknikal, strategi DPO cenderung menghasilkan isyarat perdagangan yang tidak perlu dengan kerap.
  • DPO sangat sensitif terhadap parameter N. Pilihan parameter yang berbeza boleh membawa kepada keberkesanan strategi yang sangat berbeza. Ujian yang luas diperlukan untuk mencari parameter yang optimum.
  • Di pasaran yang sedang berkembang, tempoh penahan strategi DPO mungkin terlalu lama untuk menghentikan kerugian tepat pada masanya, menimbulkan beberapa risiko kehilangan darah.

Untuk mengurangkan risiko, pengoptimuman boleh dipertimbangkan dalam aspek berikut:

  1. Tambahkan mekanisme stop loss untuk mengawal kerugian tunggal.

  2. Sesuaikan nilai parameter N untuk mencari parameter optimum.

  3. Sertakan penunjuk trend untuk mengelakkan perdagangan terhadap trend yang signifikan.

Kesimpulan

Strategi ini menghasilkan isyarat perdagangan berdasarkan penunjuk Detrended Price Oscillator. Dengan membandingkan dengan purata bergerak, penunjuk ini menapis trend jangka panjang dalam harga untuk menjadikan ciri kitaran harga lebih ketara. Ini membantu untuk menemui beberapa peluang perdagangan yang tersembunyi. Pada masa yang sama, ia juga menghadapi masalah seperti kepekaan parameter, penapisan, dll. Masih ada ruang yang besar untuk peningkatan keberkesanan melalui pengoptimuman berterusan.


/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-20 08:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/03/2017
// The Detrend Price Osc indicator is similar to a moving average, 
// in that it filters out trends in prices to more easily identify 
// cycles. The indicator is an attempt to define cycles in a trend 
// by drawing a moving average as a horizontal straight line and 
// placing prices along the line according to their relation to a 
// moving average. It provides a means of identifying underlying 
// cycles not apparent when the moving average is viewed within a 
// price chart. Cycles of a longer duration than the Length (number 
// of bars used to calculate the Detrend Price Osc) are effectively 
// filtered or removed by the oscillator.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Detrended Price Oscillator", shorttitle="DPO")
Length = input(14, minval=1)
Series = input(title="Price",  defval="close")
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xPrice = close
xsma = sma(xPrice, Length)
nRes = xPrice - xsma
pos = iff(nRes > 0, 1,
	     iff(nRes < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=red, title="Detrended Price Oscillator")

Lebih lanjut