Strategi perdagangan kuantitatif dari osilator harga terdetensi

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

Tinjauan Strategi

Strategi ini disebut Detrended Price Oscillator Quantitative Trading Strategy. Strategi ini menghasilkan sinyal perdagangan berdasarkan indikator Detrended Price Oscillator, yang merupakan strategi indikator teknis yang khas.

Logika Strategi

Inti dari strategi ini adalah indikator Detrended Price Oscillator (DPO). DPO mirip dengan moving average, yang dapat menyaring tren jangka panjang dalam harga untuk membuat fluktuasi siklik lebih jelas. Secara khusus, DPO membandingkan harga dengan rata-rata bergerak sederhana N-day mereka. Ketika harga di atas rata-rata bergerak, DPO positif; ketika harga di bawah rata-rata bergerak, DPO negatif. Ini menghasilkan osilator berfluktuasi di sekitar sumbu 0.

Strategi ini menetapkan parameter N menjadi 14 dan membangun indikator DPO 14 hari. Ketika DPO positif, sinyal panjang dikeluarkan. Ketika DPO negatif, sinyal pendek dikeluarkan.

Keuntungan

  • DPO pada dasarnya merupakan indikator penyaring yang dapat secara efektif mengidentifikasi siklus harga jangka menengah.
  • DPO memiliki konstruksi yang sederhana dan mudah dimengerti.
  • Dibandingkan dengan harga itu sendiri, pola indikator DPO lebih standar dan lebih mudah dinilai, membuatnya cocok untuk merumuskan aturan.

Risiko

  • Seperti kebanyakan strategi indikator teknis, strategi DPO cenderung menghasilkan sinyal perdagangan yang tidak perlu sering.
  • DPO sangat sensitif terhadap parameter N. Pilihan parameter yang berbeda dapat menyebabkan efektivitas strategi yang sangat berbeda. pengujian ekstensif diperlukan untuk menemukan parameter yang optimal.
  • Di pasar yang sedang berkembang, jangka waktu strategi DPO mungkin terlalu lama untuk menghentikan kerugian tepat waktu, menimbulkan beberapa risiko kehilangan darah.

Untuk mengurangi risiko, optimasi dapat dipertimbangkan dalam aspek berikut:

  1. Tambahkan mekanisme stop loss untuk mengendalikan kerugian tunggal.

  2. Sesuaikan nilai parameter N untuk menemukan parameter optimal.

  3. Sertakan indikator tren untuk menghindari perdagangan terhadap tren yang signifikan.

Kesimpulan

Strategi ini menghasilkan sinyal perdagangan berdasarkan indikator Detrended Price Oscillator. Dengan membandingkan dengan rata-rata bergerak, indikator ini menyaring tren jangka panjang dalam harga untuk membuat karakteristik siklus harga lebih jelas. Ini membantu menemukan beberapa peluang perdagangan yang tersembunyi. Pada saat yang sama, juga menghadapi masalah seperti sensitivitas parameter, penyaringan, dll. Masih ada ruang besar untuk peningkatan efektivitas melalui optimasi berkelanjutan.


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