
Artikel ini membentangkan strategi perdagangan kuantitatif berdasarkan Indeks Momentum Stochastics, SMI. Strategi ini menggunakan isyarat silang Indeks SMI dan purata bergerak indeksnya, EMA, untuk mengenal pasti peluang membeli dan menjual yang berpotensi. Isyarat membeli akan dicetuskan apabila EMA SMI melalui garis isyarat dan isyarat jual apabila EMA SMI melalui garis isyarat.
Strategi ini berpusat pada Indeks Momentum Random ((SMI)). SMI adalah satu indikator pergerakan yang digunakan untuk mengukur kedudukan harga penutupan berbanding dengan harga yang tinggi dan rendah dalam jangka masa tertentu. Secara khusus, strategi ini pertama-tama mengira harga tertinggi dan terendah dalam tempoh yang ditetapkan, kemudian mengira perbezaan antara harga penutupan dan titik pertengahan harga yang tinggi dan rendah, dan perbezaan antara harga tertinggi dan terendah.
Apabila garis isyarat SMI melintasi EMA-nya, ia menunjukkan peningkatan pergerakan ke atas, yang mencetuskan isyarat beli; apabila garis isyarat SMI melintasi EMA-nya, ia menunjukkan peningkatan pergerakan ke bawah, yang mencetuskan isyarat jual. Selain itu, strategi ini juga menandakan keadaan melampau SMI melalui tahap overbuy dan oversell.
Strategi ini adalah berdasarkan kepada penunjuk momentum yang kuat, SMI, yang dapat menangkap dengan berkesan trend pasaran dan perubahan momentum.
Logik strategi jelas, mudah difahami dan dilaksanakan.
Dengan menggunakan purata bergerak indeks sebagai garisan isyarat, strategi dapat meredam bunyi harga dan meningkatkan kebolehpercayaan isyarat.
Tanda-tanda tahap overbought dan oversold menyediakan alat pengurusan risiko tambahan kepada strategi.
Strategi ini bergantung kepada satu indikator SMI dan mungkin menghadapi risiko kegagalan indikator. Untuk mengurangkan risiko ini, anda boleh mempertimbangkan untuk mengesahkan isyarat perdagangan dalam kombinasi dengan indikator teknikal atau faktor asas lain.
Strategi ini mungkin menghasilkan isyarat dagangan yang kerap dalam pasaran yang bergolak, menyebabkan kos dagangan yang tinggi. Untuk mengatasi masalah ini, frekuensi dagangan dapat dikurangkan dengan mengoptimumkan parameter atau memperkenalkan mekanisme penapisan.
Strategi ini tidak mempunyai mekanisme penangguhan kerugian yang jelas, dan mungkin menghadapi masalah risiko yang terlalu besar dalam satu perdagangan. Risiko boleh dikawal dengan menetapkan paras penangguhan kerugian yang sesuai.
Optimasi parameter: Prestasi strategi ini sangat bergantung kepada parameter yang digunakan dalam pengiraan SMI, seperti panjang% K, panjang% D, dan sebagainya. Dengan mengoptimumkan parameter ini, anda dapat meningkatkan prestasi strategi.
Penapisan isyarat: Untuk mengurangkan kekerapan perdagangan dan meningkatkan kualiti isyarat, mekanisme penapisan tambahan boleh dipertimbangkan, seperti pengesahan trend, pengesahan jumlah perdagangan dan sebagainya.
Pengurusan risiko: Menambah peraturan pengurusan stop loss dan kedudukan yang jelas dalam strategi dapat mengawal risiko dengan lebih baik dan meningkatkan kestabilan strategi.
Penggabungan pelbagai faktor: menggabungkan isyarat SMI dengan petunjuk teknikal atau faktor asas lain untuk membentuk mekanisme keputusan perdagangan yang lebih menyeluruh dan lebih dipercayai.
Artikel ini memperkenalkan satu strategi perdagangan kuantitatif berdasarkan Indeks Momentum Random ((SMI)). Strategi ini menggunakan SMI dengan isyarat silang Indeks Moving Average untuk mengenal pasti peluang membeli dan menjual yang berpotensi. Strategi ini mempunyai kelebihan berdasarkan indikator dinamik yang kuat, kejernihan logik, mudah dilaksanakan, dan meningkatkan kebolehpercayaan isyarat dan pengurusan risiko dengan menggunakan purata bergerak dan tahap jual beli yang lebih tinggi.
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Stochastics Momentum Index Strategy", shorttitle="SMI_BackTest", overlay=false)
// Input parameters
a = input.int(10, "Percent K Length")
b = input.int(3, "Percent D Length")
ob = input.int(40, "Overbought")
os = input.int(-40, "Oversold")
// Range Calculation
ll = ta.lowest(low, a)
hh = ta.highest(high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2
avgrel = ta.ema(ta.ema(rdiff,b),b)
avgdiff = ta.ema(ta.ema(diff,b),b)
// SMI calculations
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ta.ema(SMI,b)
emasignal = ta.ema(SMI, 10)
// Color Definition for Stochastic Line
col = SMI >= ob ? color.green : SMI <= os ? color.red : color.white
plot(SMIsignal, title="Stochastic", color=color.white)
plot(emasignal, title="EMA", color=color.yellow)
level_40 = ob
level_40smi = SMIsignal > level_40 ? SMIsignal : level_40
level_m40 = os
level_m40smi = SMIsignal < level_m40 ? SMIsignal : level_m40
plot(level_40, "Level ob", color=color.red)
plot(level_40smi, "Level ob SMI", color=color.red, style=plot.style_line)
plot(level_m40, "Level os", color=color.green)
plot(level_m40smi, "Level os SMI", color=color.green, style=plot.style_line)
//fill(level_40, level_40smi, color=color.red, transp=ob, title="OverSold")
//fill(level_m40, level_m40smi, color=color.green, transp=ob, title="OverBought")
// Strategy Tester
longCondition = ta.crossover(SMIsignal, emasignal)
if (longCondition)
strategy.entry("Buy", strategy.long)
shortCondition = ta.crossunder(SMIsignal, emasignal)
if (shortCondition)
strategy.entry("Sell", strategy.short)