Strategi perdagangan kuantitatif multi-faktor


Tanggal Pembuatan: 2023-09-13 14:46:59 Akhirnya memodifikasi: 2023-09-13 14:46:59
menyalin: 0 Jumlah klik: 454
1
fokus pada
1217
Pengikut

Sebuah strategi perdagangan kuantitatif multi faktor, yang mempertimbangkan faktor kesetaraan dan faktor indikator osilasi secara komprehensif untuk mengendalikan risiko dan meningkatkan stabilitas. Artikel ini akan menjelaskan secara rinci prinsip, keuntungan, dan risiko yang mungkin ada dalam strategi perdagangan ini.

Prinsip Strategi

Strategi ini terdiri dari tiga modul utama:

  1. Faktor rata-rata

Membangun filter tren dengan menggunakan 5 garis rata-rata EMA dengan periode yang berbeda (8, 13, 21, 34, 55); garis rata-rata diurutkan dari pendek ke panjang, dan hanya memiliki karakteristik tren dan menghasilkan sinyal perdagangan ketika melewati garis rata-rata periode panjang di atas garis rata-rata periode pendek.

  1. Faktor indikator osilasi

Dengan menggunakan indikator RSI dan Stochastic untuk memverifikasi terobosan, untuk menghindari terobosan palsu dalam pasar yang bergejolak.

Parameter RSI adalah 14, ketika RSI berada di kisaran 40-70 sesuai dengan kondisi over dan 30-60 sesuai dengan kondisi under.

Parameter stokastik adalah ((14,3,3), ketika garis K memenuhi syarat untuk melakukan lebih banyak ketika berada di kisaran 20-80, dan memenuhi syarat untuk melakukan lebih sedikit ketika berada di kisaran 5-95.

  1. Logika masuk dan keluar

Sebuah sinyal masuk hanya akan dipicu jika faktor garis rata-rata dan faktor indikator osilasi memenuhi syarat; sinyal keluar akan dihasilkan jika salah satu faktor tidak lagi memenuhi syarat.

Seluruh strategi ini menggunakan mekanisme penyaringan multi faktor yang ketat, yang memastikan bahwa sinyal perdagangan stabil dan dapat diandalkan sambil mempertahankan tingkat kemenangan yang tinggi.

Keunggulan Strategis

  • Desain multi-faktor efektif menyaring kebisingan pasar dan menghindari over-trading
  • Mengambil faktor tren dan faktor reversal dalam perhitungan, dengan keuntungan dari trend tracking dan spot trading
  • Kombinasi garis rata dengan indikator osilasi, dapat menangkap titik balik dalam tren
  • Optimasi ruang yang luas, dapat mendapatkan efek strategi yang lebih baik dengan menyesuaikan parameter

Petunjuk Risiko

  • Frekuensi sinyal yang lebih rendah, kemungkinan kehilangan beberapa peluang perdagangan
  • Garis rata-rata terbelakang, harus digabungkan dengan indikator periode yang lebih pendek untuk verifikasi
  • Indikator osilasi mudah menghasilkan sinyal palsu, dan harus hanya sebagai faktor tambahan
  • Parameter yang perlu dioptimalkan secara berkala untuk menyesuaikan diri dengan perubahan lingkungan pasar

Meringkaskan

Strategi ini berhasil menggabungkan keuntungan dari trend tracking dan reversal trading, model multi faktor secara efektif mengendalikan risiko, dan dapat menghasilkan keuntungan ekstra yang stabil. Ini adalah model strategi perdagangan kuantitatif yang sangat praktis yang layak untuk penelitian dan aplikasi mendalam oleh komunitas kecerdasan buatan.

Kode Sumber Strategi
/*backtest
start: 2022-09-12 00:00:00
end: 2022-11-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Combined Strategy", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value = .0020, pyramiding = 0, slippage = 3, overlay = true)

//----------//
// MOMENTUM //
//----------//
ema8 = ema(close, 8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema34 = ema(close, 34)
ema55 = ema(close, 55)

plot(ema8, color=red, style=line, title="8", linewidth=1)
plot(ema13, color=orange, style=line, title="13", linewidth=1)
plot(ema21, color=yellow, style=line, title="21", linewidth=1)
plot(ema34, color=aqua, style=line, title="34", linewidth=1)
plot(ema55, color=lime, style=line, title="55", linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

// Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = stoch(close, high, low, 14)
dSlow = sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
    strategy.entry("LONG", strategy.long)
if (exitLongCondition)
    strategy.close("LONG")
    
shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
    strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
    strategy.close("SHORT")