Strategi Pengumpulan Momentum dalam Tempoh Masa Berbeza

Penulis:ChaoZhang, Tarikh: 2023-10-26 17:39:26
Tag:

img

Ringkasan

Strategi Pemasangan Momentum terutamanya mengira Kadar Perubahan (ROC) dalam tempoh yang berbeza, berat dan menumpuknya untuk membentuk penunjuk momentum yang komprehensif untuk menilai arah trend. Strategi ini menumpuk penunjuk momentum jangka pendek, jangka menengah dan jangka panjang untuk mengimbangi trend jangka pendek dan jangka panjang dan mengelakkan isyarat palsu.

Logika Strategi

Strategi ini mula-mula mengira penunjuk ROC dalam tempoh 10 hari, 15 hari, 20 hari, dan lain-lain. Kemudian meratakan ROC dan menumpuknya dalam nisbah bertimbang 1-4 untuk mendapatkan formula:

roc1 = (sma(roc(close,10),10)*1)
roc2 = (sma(roc(close,15),10)*2)  
...
osc = roc1+roc2+roc3+roc4+...

Di mana roc1-roc12 mewakili pengiraan ROC untuk tempoh yang berbeza dari 10 hari hingga 530 hari.

Ia kemudiannya meratakan osc dengan SMA a (default 10) hari untuk mendapatkan oscsmt.

Membandingkan osc dengan oscsmt, apabila osc melintasi atas oscsmt sebagai isyarat bullish dan masuk panjang. Apabila osc melintasi di bawah oscsmt sebagai isyarat bearish dan masuk pendek.

Akhirnya, ia boleh memilih untuk membalikkan arah perdagangan.

Kelebihan

  1. Menumpuk penunjuk momentum jangka pendek dan jangka panjang dapat menangkap kedua-dua trend jangka pendek dan jangka panjang, mengelakkan isyarat palsu.

  2. Membandingkan osc dan oscsmt boleh mengurangkan perdagangan yang tidak perlu di pasaran sampingan.

  3. Parameter yang boleh disesuaikan untuk menyesuaikan tempoh ROC dan kelancaran SMA.

  4. Arah perdagangan yang boleh diubah memenuhi gaya perdagangan yang berbeza.

  5. Indikator visual menjadikan titik membeli dan menjual intuitif.

Risiko dan Pengoptimuman

  1. ROC sangat sensitif terhadap kelainan harga tiba-tiba, yang boleh menghasilkan isyarat yang salah.

  2. Parameter lalai mungkin tidak sesuai untuk semua instrumen dagangan. Perlu pengoptimuman untuk mencari kombinasi parameter terbaik berdasarkan ciri yang berbeza.

  3. Perdagangan hanya berdasarkan OSC dan OSCSMT crossover.

  4. Lebih sesuai untuk perdagangan jangka menengah dan panjang. Mungkin perlu menyesuaikan tempoh ROC untuk mengoptimumkan senario penggunaan.

Kesimpulan

Strategi Pengumpulan Momentum mengira beberapa tempoh ROC untuk mendapatkan penunjuk momentum yang komprehensif, menangkap kedua-dua trend jangka pendek dan jangka panjang, mengelakkan isyarat palsu. Berbanding dengan ROC tunggal, ia sangat meningkatkan kualiti isyarat dan kebolehpercayaan. Tetapi ia masih membawa beberapa risiko pemantauan. Parameter memerlukan pengoptimuman dan menggabungkan penunjuk lain untuk memaksimumkan kegunaan.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter 08/08/2017
// Pring's Special K is a cyclical indicator created by Martin Pring. 
// His method combines short-term, intermediate and long-term velocity 
// into one complete series. Useful tool for Long Term Investors
// Modified for any source.
//
// 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="Martin Pring's Special K Backtest", shorttitle="UCS_Pring_sK")
a = input(10, title = "Smooth" )
sources = input(title="Source",  defval=close)
reverse = input(false, title="Trade reverse")
roc1 = (sma(roc(sources,10),10)*1)
roc2 = (sma(roc(sources,15),10)*2)
roc3 = (sma(roc(sources,20),10)*3)
roc4 = (sma(roc(sources,30),15)*4)
roc5 = (sma(roc(sources,40),50)*1)
roc6 = (sma(roc(sources,65),65)*2)
roc7 = (sma(roc(sources,75),75)*3)
roc8 = (sma(roc(sources,100),100)*4)
roc9 = (sma(roc(sources,195),130)*1)
roc10 = (sma(roc(sources,265),130)*2)
roc11 = (sma(roc(sources,390),130)*3)
roc12 = (sma(roc(sources,530),195)*4)
osc = roc1+roc2+roc3+roc4+roc5+roc6+roc7+roc8+roc9+roc10+roc11+roc12
oscsmt = sma(osc,a)
pos = iff(osc > oscsmt, 1,
	     iff(osc < oscsmt, -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(osc, color=blue, title="Martin Pring's Special K")
plot(oscsmt, color = red, title = "Smooth")
hline(0, title="Zero Line")

Lebih lanjut