Sumber dimuat naik... memuat...

Strategi kuantum Moving Average Crossover

Penulis:ChaoZhang, Tarikh: 2024-01-26 11:39:26
Tag:

img

Ringkasan

Strategi ini menggabungkan indikator purata bergerak dan jumlah dagangan untuk merancang peraturan kemasukan dan keluar panjang dan pendek, membentuk strategi dagangan kuantitatif yang lengkap.

Prinsip Strategi

Penunjuk Utama

  1. Purata bergerak: MA pantas (garis biru) dan MA perlahan (garis merah)
  2. Volume: Volume 24 jam (Merah Putih) dan Volume Purata 7 hari (Jingga)

Syarat Strategi

Syarat kemasukan panjang:

  1. MA pantas melintasi MA perlahan
  2. Volume 24 jam di bawah 50% daripada Volume Purata 7 hari

Syarat kemasukan ringkas:

MA pantas melintasi di bawah MA perlahan

Masuk dan Keluar

Masuk panjang:Pergi panjang apabila syarat panjang dipenuhi

Pendaftaran ringkas:Pergi pendek apabila syarat pendek dipenuhi

Ambil keuntungan dan hentikan kerugian:Tunjukkan tahap mengambil keuntungan dan berhenti kerugian untuk kedudukan panjang

Analisis Kelebihan

  1. Menggabungkan harga dan jumlah mengelakkan pecah palsu
  2. Peraturan kemasukan dan keluar yang jelas
  3. Ambil keuntungan dan hentikan kerugian untuk mengawal risiko

Analisis Risiko

  1. Perdagangan kerap dengan strategi purata bergerak
  2. Kualiti data jumlah yang tidak boleh dipercayai
  3. Pengoptimuman berlebihan dalam penyesuaian parameter

Penambahbaikan:

  1. Penyesuaian parameter MA untuk mengurangkan kekerapan dagangan
  2. Memeriksa isyarat dengan lebih banyak sumber data
  3. Pengujian belakang yang ketat untuk mengelakkan pengoptimuman berlebihan

Arahan pengoptimuman

  1. Tambah penunjuk lain kepada isyarat penapis
  2. Pendapatan dinamik mengambil keuntungan dan berhenti kerugian
  3. Analisis jangka masa berbilang untuk meningkatkan kestabilan

Ringkasan

Strategi ini mengintegrasikan penunjuk MA dan jumlah untuk merancang strategi kuantum lengkap dengan syarat kemasukan yang jelas, mengambil keuntungan / berhenti kerugian, mudah dikendalikan. Perlu mencegah isu perdagangan yang kerap, memantau kualiti data jumlah dan pengoptimuman berlebihan. Langkah seterusnya adalah pengoptimuman multivariate, TP / SL dinamik dan analisis pelbagai jangka masa.


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


Lebih lanjut