Strategi Dagangan Kuantitatif Berdasarkan Indeks Momentum Stochastics

Penulis:ChaoZhang, Tarikh: 2024-03-11 10:46:10
Tag:

img

Ringkasan Strategi

Artikel ini memperkenalkan strategi perdagangan kuantitatif berdasarkan Indeks Momentum Stochastics (SMI). Strategi ini menggunakan isyarat silang antara penunjuk SMI dan purata bergerak eksponensialnya (EMA) untuk mengenal pasti peluang membeli dan menjual yang berpotensi. Apabila garis isyarat SMI melintasi di atas EMA, ia mencetuskan isyarat beli; apabila garis isyarat SMI melintasi di bawah EMA, ia mencetuskan isyarat jual.

Prinsip Strategi

Inti strategi ini adalah Indeks Momentum Stochastic (SMI). SMI adalah pengayun momentum yang mengukur harga penutupan berbanding dengan julat tinggi-rendah dalam tempoh tertentu. Khususnya, strategi pertama mengira tertinggi tertinggi dan terendah terendah dalam tempoh yang ditentukan, kemudian mengira perbezaan antara harga penutupan dan titik tengah julat tinggi-rendah, serta perbezaan antara tertinggi tertinggi dan terendah terendah. Seterusnya, strategi mengira nilai SMI, yang merupakan nisbah perbezaan relatif purata kepada perbezaan mutlak purata dikalikan dengan 100. Akhirnya, strategi mengira purata bergerak eksponensial SMI sebagai garis isyarat.

Apabila garis isyarat SMI melintasi di atas EMA, ia menunjukkan peningkatan momentum dan mencetuskan isyarat beli; apabila garis isyarat SMI melintasi di bawah EMA, ia menunjukkan peningkatan momentum menurun dan mencetuskan isyarat jual.

Kelebihan Strategi

  1. Strategi ini berdasarkan kepada penunjuk momentum yang kuat SMI, yang dapat menangkap perubahan dalam trend dan momentum pasaran dengan berkesan.

  2. Logik strategi adalah jelas dan mudah difahami dan dilaksanakan.

  3. Dengan menggunakan purata bergerak eksponensial sebagai garis isyarat, strategi ini dapat meratakan bunyi harga dan meningkatkan kebolehpercayaan isyarat.

  4. Penanda tahap terlalu banyak beli dan terlalu banyak jual menyediakan alat pengurusan risiko tambahan untuk strategi.

Risiko Strategi

  1. Strategi ini bergantung kepada satu penunjuk, SMI, dan mungkin menghadapi risiko kegagalan penunjuk. Untuk mengurangkan risiko ini, seseorang boleh mempertimbangkan menggabungkan penunjuk teknikal atau faktor asas lain untuk mengesahkan isyarat perdagangan.

  2. Strategi ini boleh menghasilkan isyarat perdagangan yang kerap di pasaran yang bergelora, yang membawa kepada kos transaksi yang tinggi.

  3. Strategi ini tidak mempunyai mekanisme stop-loss yang jelas dan mungkin menghadapi masalah risiko perdagangan tunggal yang berlebihan.

Arahan Pengoptimuman Strategi

  1. Pengoptimuman Parameter: Prestasi strategi sebahagian besarnya bergantung kepada parameter yang digunakan dalam pengiraan SMI, seperti panjang % K, panjang % D, dll. Dengan mengoptimumkan parameter ini, prestasi strategi dapat ditingkatkan.

  2. Penapisan Isyarat: Untuk mengurangkan kekerapan perdagangan dan meningkatkan kualiti isyarat, mekanisme penapisan tambahan seperti pengesahan trend dan pengesahan jumlah boleh dipertimbangkan.

  3. Pengurusan Risiko: Memasukkan peraturan stop-loss dan pengurusan kedudukan yang jelas ke dalam strategi dapat mengawal risiko dengan lebih baik dan meningkatkan ketahanan strategi.

  4. Kombinasi Multi-Faktor: Menggabungkan isyarat SMI dengan penunjuk teknikal atau faktor asas lain untuk membentuk mekanisme keputusan perdagangan yang lebih komprehensif dan boleh dipercayai.

Ringkasan

Artikel ini memperkenalkan strategi perdagangan kuantitatif berdasarkan Indeks Momentum Stochastics (SMI). Strategi ini menggunakan isyarat silang antara penunjuk SMI dan purata bergerak eksponensialnya untuk mengenal pasti peluang membeli dan menjual yang berpotensi. Kelebihan strategi terletak pada asasnya pada penunjuk momentum yang kuat, logik yang jelas, kemudahan pelaksanaan, dan penggunaan purata bergerak dan tahap overbought / oversold untuk meningkatkan kebolehpercayaan isyarat dan pengurusan risiko. Walau bagaimanapun, strategi ini juga menghadapi risiko seperti kegagalan satu indikator, perdagangan frekuensi tinggi, dan kawalan risiko yang tidak mencukupi. Untuk meningkatkan lagi prestasi strategi, pengoptimuman boleh dilakukan dari segi pengoptimuman parameter, penapisan isyarat, pengurusan risiko, dan kombinasi pelbagai faktor. Secara keseluruhan, strategi ini menyediakan pendekatan yang mudah namun berkesan untuk perdagangan kuantitatif, tetapi memerlukan penyesuaian dan pengoptimuman yang sesuai berdasarkan keadaan praktikal tertentu.


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


Lebih lanjut