Strategi Perdagangan Kuantitatif Berdasarkan Indeks Momentum Stochastics

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

img

Tinjauan Strategi

Artikel ini memperkenalkan strategi perdagangan kuantitatif berdasarkan Stochastic Momentum Index (SMI). Strategi ini memanfaatkan sinyal silang antara indikator SMI dan moving average eksponensialnya (EMA) untuk mengidentifikasi peluang pembelian dan penjualan potensial. Ketika garis sinyal SMI melintasi di atas EMA, itu memicu sinyal beli; ketika garis sinyal SMI melintasi di bawah EMA, itu memicu sinyal jual.

Prinsip Strategi

Inti dari strategi ini adalah Indeks Momentum Stokastik (SMI). SMI adalah osilator momentum yang mengukur harga penutupan relatif terhadap kisaran tinggi-rendah selama periode tertentu. Secara khusus, strategi pertama menghitung tertinggi tertinggi dan terendah terendah selama periode yang ditentukan, kemudian menghitung perbedaan antara harga penutupan dan titik tengah kisaran tinggi-rendah, serta perbedaan antara tertinggi tertinggi dan terendah terendah. Selanjutnya, strategi menghitung nilai SMI, yang merupakan rasio dari perbedaan relatif rata-rata terhadap perbedaan absolut rata-rata dikalikan dengan 100. Akhirnya, strategi menghitung rata-rata bergerak eksponensial SMI sebagai garis sinyal.

Ketika garis sinyal SMI melintasi di atas EMA, itu menunjukkan peningkatan momentum dan memicu sinyal beli; ketika garis sinyal SMI melintasi di bawah EMA, itu menunjukkan peningkatan momentum ke bawah dan memicu sinyal jual.

Keuntungan Strategi

  1. Strategi ini didasarkan pada indikator momentum SMI yang kuat, yang dapat secara efektif menangkap perubahan tren dan momentum pasar.

  2. Logika strategi jelas dan mudah dipahami dan diterapkan.

  3. Dengan menggunakan rata-rata bergerak eksponensial sebagai garis sinyal, strategi dapat meringankan kebisingan harga dan meningkatkan keandalan sinyal.

  4. Penandaan tingkat overbought dan oversold menyediakan alat manajemen risiko tambahan untuk strategi.

Risiko Strategi

  1. Strategi ini didasarkan pada satu indikator, SMI, dan dapat menghadapi risiko kegagalan indikator. Untuk mengurangi risiko ini, seseorang dapat mempertimbangkan menggabungkan indikator teknis lain atau faktor fundamental untuk mengkonfirmasi sinyal perdagangan.

  2. Strategi ini dapat menghasilkan sinyal perdagangan yang sering terjadi di pasar yang bergolak, yang mengarah pada biaya transaksi yang tinggi.

  3. Strategi ini tidak memiliki mekanisme stop loss yang eksplisit dan dapat menghadapi masalah risiko perdagangan tunggal yang berlebihan.

Arah Optimasi Strategi

  1. Optimasi Parameter: Kinerja strategi sangat tergantung pada parameter yang digunakan dalam perhitungan SMI, seperti panjang %K, panjang %D, dll. Dengan mengoptimalkan parameter ini, kinerja strategi dapat ditingkatkan.

  2. Penyaringan sinyal: Untuk mengurangi frekuensi perdagangan dan meningkatkan kualitas sinyal, mekanisme penyaringan tambahan seperti konfirmasi tren dan konfirmasi volume dapat dipertimbangkan.

  3. Manajemen Risiko: Memasukkan aturan stop loss dan manajemen posisi yang eksplisit ke dalam strategi dapat mengendalikan risiko dengan lebih baik dan meningkatkan ketahanan strategi.

  4. Kombinasi Multi-Faktor: Menggabungkan sinyal SMI dengan indikator teknis atau faktor fundamental lainnya untuk membentuk mekanisme keputusan perdagangan yang lebih komprehensif dan dapat diandalkan.

Ringkasan

Artikel ini memperkenalkan strategi perdagangan kuantitatif berdasarkan Indeks Momentum Stochastics (SMI). Strategi ini memanfaatkan sinyal silang antara indikator SMI dan rata-rata bergerak eksponensialnya untuk mengidentifikasi peluang pembelian dan penjualan potensial. Keuntungan dari strategi ini terletak pada dasarnya pada indikator momentum yang kuat, logika yang jelas, kemudahan implementasi, dan penggunaan rata-rata bergerak dan tingkat overbought / oversold untuk meningkatkan keandalan sinyal dan manajemen risiko. Namun, strategi ini juga menghadapi risiko seperti kegagalan indikator tunggal, perdagangan frekuensi tinggi, dan kendali risiko yang tidak memadai. Untuk meningkatkan kinerja strategi, optimasi dapat dilakukan dalam hal optimasi parameter, penyaringan sinyal, manajemen risiko, dan kombinasi multi-faktor. Secara keseluruhan, strategi ini menyediakan pendekatan sederhana namun efektif untuk perdagangan kuantitatif, tetapi membutuhkan penyesuaian dan optimasi yang sesuai berdasarkan situasi praktis 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 banyak