Momentum Moving Average Crossover Strategi Kuantitatif


Tarikh penciptaan: 2024-01-26 11:39:26 Akhirnya diubah suai: 2024-01-26 11:39:26
Salin: 0 Bilangan klik: 587
1
fokus pada
1617
Pengikut

Momentum Moving Average Crossover Strategi Kuantitatif

Gambaran keseluruhan

Strategi ini menggabungkan moving averages dan volume dagangan, dua petunjuk teknikal utama, dan merancang peraturan masuk dan keluar untuk kedudukan panjang dan pendek, untuk membentuk strategi dagangan kuantitatif yang lengkap.

Prinsip Strategi

Penunjuk Utama

  1. Rata-rata bergerak: Rata-rata bergerak pantas (garis biru) dan rata-rata bergerak perlahan (garis merah) [2].
  2. Jumlah dagangan: 24 jam (warna ungu) dan purata 7 hari (warna merah muda).

Syarat strategi

Syarat kemasukan untuk pelaburan lama:

  1. Rata-rata bergerak laju melalui rata-rata bergerak perlahan
  2. Jumlah dagangan 24 jam kurang daripada 50 peratus daripada purata dagangan 7 hari

Syarat kemasukan untuk kedudukan pendek:
Berjalan laju di bawah purata bergerak perlahan

Masuk dan keluar

Bermula dengan pertaruhan lama:Memenuhi Syarat Masuk Long Position

Pendaftaran Kedudukan Pendek:Keluar kosong apabila memenuhi syarat untuk memasuki kedudukan pendek

Penangguhan dan penangguhan: Tunjukkan kedudukan stop dan stop loss

Analisis kelebihan

  1. Gabungan Indeks Harga dan Indeks Jumlah Dagangan untuk Mengelakkan Penembusan Palsu
  2. Peraturan kemasukan dan keluar yang jelas
  3. Mekanisme kawalan risiko

Analisis risiko

  1. Strategi dua hala mudah menghasilkan dagangan yang kerap
  2. Data jumlah transaksi tidak boleh dijamin
  3. Pengoptimuman parameter berisiko terlalu optimum

Kaedah penambahbaikan:

  1. Menyesuaikan parameter garis purata untuk mengurangkan kekerapan perdagangan
  2. Sinyal kuantifikasi yang digabungkan dengan lebih banyak sumber data
  3. Pengujian semula yang ketat untuk mengelakkan pengoptimuman berlebihan

Arah pengoptimuman

  1. Tambah isyarat penapis penunjuk lain
  2. Dinamika penyesuaian Stop Loss
  3. Analisis jangka masa berbilang untuk meningkatkan kestabilan

ringkaskan

Strategi ini mengintegrasikan penunjuk purata bergerak dan penunjuk jumlah transaksi, merancang strategi perdagangan kuantitatif yang lengkap melalui mekanisme pengesahan ganda. Ia mempunyai kelebihan syarat kemasukan yang jelas, mempunyai stop loss, dan mudah dikendalikan. Ia juga harus mencegah masalah perdagangan yang kerap dalam strategi garis lurus ganda, memberi perhatian kepada kualiti data jumlah transaksi, dan mengelakkan parameter yang terlalu dioptimumkan.

Kod sumber strategi
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA and Volume Strategy", overlay=true)

// Input parameters
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")
volumePercentageThreshold = input(50, title="Volume Percentage Threshold")

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Calculate 24-hour volume and weekly volume average
dailyVolume = request.security(syminfo.tickerid, "D", volume)
weeklyVolumeAvg = ta.sma(request.security(syminfo.tickerid, "W", volume), 7)

// Strategy conditions
longCondition = ta.crossover(fastMA, slowMA) and dailyVolume < (weeklyVolumeAvg * volumePercentageThreshold / 100)
shortCondition = ta.crossunder(fastMA, slowMA)

// Set take profit and stop loss levels
takeProfitLong = close * 1.50
stopLossLong = close * 0.90

// Strategy orders
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Plot moving averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")

// Plot 24-hour volume and weekly volume average
plot(dailyVolume, color=color.purple, title="24-Hour Volume", transp=0)
plot(weeklyVolumeAvg, color=color.orange, title="Weekly Volume Average")

// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)

// Plot take profit and stop loss levels only when a valid trade is active
plotshape(series=longCondition, title="Take Profit Long", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=longCondition, title="Stop Loss Long", color=color.red, style=shape.triangledown, size=size.small)