Strategi Pemasangan Momentum dari Kerangka Waktu yang Berbeda

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

img

Gambaran umum

Strategi Momentum Stacking terutama menghitung Rate of Change (ROC) selama periode yang berbeda, bobot dan menumpuknya untuk membentuk indikator momentum yang komprehensif untuk menilai arah tren. Strategi ini menumpuk indikator momentum jangka pendek, menengah dan jangka panjang untuk menyeimbangkan tren jangka pendek dan jangka panjang dan menghindari sinyal palsu.

Logika Strategi

Strategi ini pertama-tama menghitung indikator ROC selama periode 10 hari, 15 hari, 20 hari, dll. Kemudian meratakan ROC dan menumpuknya dalam rasio 1-4 tertimbang untuk mendapatkan rumus:

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

Di mana roc1-roc12 mewakili perhitungan ROC selama periode yang berbeda dari 10 hari hingga 530 hari.

Kemudian meratakan osc dengan SMA (default 10) hari untuk mendapatkan oscsmt.

Membandingkan osc dengan oscsmt, ketika osc melintasi atas oscsmt sebagai sinyal bullish dan masuk panjang. Ketika osc melintasi di bawah oscsmt sebagai sinyal bearish dan masuk pendek.

Akhirnya, ia dapat memilih untuk membalikkan arah perdagangan.

Keuntungan

  1. Menumpuk indikator momentum jangka pendek dan jangka panjang dapat menangkap tren jangka pendek dan jangka panjang, menghindari sinyal palsu.

  2. Membandingkan osc dan oscsmt dapat mengurangi perdagangan yang tidak perlu di pasar sampingan.

  3. Parameter yang dapat disesuaikan untuk menyesuaikan periode ROC dan kelancaran SMA.

  4. Arah perdagangan reversibel melayani gaya perdagangan yang berbeda.

  5. Indikator visual membuat titik pembelian dan penjualan intuitif.

Risiko dan Optimasi

  1. ROC sangat sensitif terhadap abnormalitas harga tiba-tiba, yang dapat menghasilkan sinyal yang salah.

  2. Parameter default mungkin tidak cocok untuk semua instrumen perdagangan. Perlu optimasi untuk menemukan kombinasi parameter terbaik berdasarkan karakteristik yang berbeda.

  3. Perdagangan hanya didasarkan pada OSC dan OSCSMT crossover.

  4. Lebih cocok untuk perdagangan jangka menengah dan panjang. Mungkin perlu menyesuaikan periode ROC untuk mengoptimalkan skenario penggunaan.

Kesimpulan

Strategi Momentum Stacking menghitung beberapa periode ROC untuk mendapatkan indikator momentum yang komprehensif, menangkap tren jangka pendek dan jangka panjang, menghindari sinyal palsu. Dibandingkan dengan ROC tunggal, ini sangat meningkatkan kualitas dan keandalan sinyal.


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