Strategi dagangan terobosan kejutan VWAP dinamik sisihan piawai berganda berdasarkan statistik kuantitatif

VWAP SD VOL HL2
Tarikh penciptaan: 2025-01-06 16:31:36 Akhirnya diubah suai: 2025-01-06 16:31:36
Salin: 2 Bilangan klik: 438
1
fokus pada
1617
Pengikut

Strategi dagangan terobosan kejutan VWAP dinamik sisihan piawai berganda berdasarkan statistik kuantitatif

Gambaran keseluruhan

Strategi tersebut ialah strategi pecah aliran berdasarkan VWAP (Volume Weighted Average Price) dan saluran sisihan piawai. Ia membina julat turun naik harga yang dinamik dengan mengira VWAP dan saluran sisihan piawai atas dan bawah untuk menangkap peluang dagangan apabila harga menembusi ke atas. Strategi ini bergantung terutamanya pada isyarat penembusan jalur sisihan piawai untuk perdagangan, dan menetapkan sasaran keuntungan dan selang pesanan untuk mengawal risiko.

Prinsip Strategi

  1. Pengiraan penunjuk teras:
  • Kira VWAP menggunakan harga dan volum HL2 intrahari
  • Kira sisihan piawai berdasarkan turun naik harga
  • Tetapkan 1.28 kali sisihan piawai saluran atas dan bawah
  1. Logik urus niaga:
  • Syarat kemasukan: Harga melintasi landasan bawah dan kemudian naik ke landasan atas
  • Syarat keluar: mencapai sasaran keuntungan yang telah ditetapkan
  • Tetapkan selang pesanan minimum untuk mengelakkan perdagangan yang kerap

Kelebihan Strategik

  1. Statistik Asas
  • Rujukan Pangsi Harga Berdasarkan VWAP
  • Menggunakan sisihan piawai untuk mengukur kemeruapan
  • Laraskan julat dagangan secara dinamik
  1. Kawalan Risiko
  • Tetapkan sasaran keuntungan tetap
  • Mengawal kekerapan transaksi
  • Strategi panjang sahaja mengurangkan risiko

Risiko Strategik

  1. Risiko Pasaran
  • Kemeruapan liar boleh menyebabkan jerawat palsu
  • Sukar untuk memahami titik perubahan arah aliran dengan tepat
  • Penurunan berat sebelah membawa kepada kerugian yang lebih besar
  1. Risiko Parameter
  • Sisihan piawai kepekaan tetapan berbilang
  • Penetapan sasaran keuntungan perlu dioptimumkan
  • Selang dagangan mempengaruhi prestasi keuntungan

Arah pengoptimuman

  1. Pengoptimuman Isyarat
  • Tambah penapis pertimbangan arah aliran
  • Disahkan oleh perubahan dalam volum dagangan
  • Tambahkan penunjuk teknikal lain untuk mengesahkan
  1. Pengoptimuman pengurusan risiko
  • Tetapkan kedudukan stop loss secara dinamik
  • Laraskan kedudukan berdasarkan turun naik
  • Meningkatkan mekanisme pengurusan pesanan

ringkaskan

Ini adalah strategi perdagangan kuantitatif yang menggabungkan prinsip statistik dan analisis teknikal. Melalui penyelarasan VWAP dan jalur sisihan piawai, sistem perdagangan yang agak boleh dipercayai dibina. Kelebihan teras strategi terletak pada asas statistik saintifik dan mekanisme kawalan risiko yang sempurna, tetapi ia masih perlu terus mengoptimumkan parameter dan logik dagangan dalam aplikasi praktikal.

Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5 
strategy("VWAP Stdev Bands Strategy (Long Only)", overlay=true)

// Standard Deviation Inputs
devUp1 = input.float(1.28, title="Stdev above (1)")
devDn1 = input.float(1.28, title="Stdev below (1)")

// Show Options
showPrevVWAP = input(false, title="Show previous VWAP close?")
profitTarget = input.float(2, title="Profit Target ($)", minval=0) // Profit target for closing orders
gapMinutes = input.int(15, title="Gap before new order (minutes)", minval=0) // Gap for placing new orders

// VWAP Calculation
var float vwapsum = na
var float volumesum = na
var float v2sum = na
var float prevwap = na // Track the previous VWAP
var float lastEntryPrice = na // Track the last entry price
var int lastEntryTime = na // Track the time of the last entry

start = request.security(syminfo.tickerid, "D", time)
newSession = ta.change(start)

vwapsum := newSession ? hl2 * volume : vwapsum[1] + hl2 * volume
volumesum := newSession ? volume : volumesum[1] + volume
v2sum := newSession ? volume * hl2 * hl2 : v2sum[1] + volume * hl2 * hl2

myvwap = vwapsum / volumesum
dev = math.sqrt(math.max(v2sum / volumesum - myvwap * myvwap, 0))

// Calculate Upper and Lower Bands
lowerBand1 = myvwap - devDn1 * dev
upperBand1 = myvwap + devUp1 * dev

// Plot VWAP and Bands with specified colors
plot(myvwap, style=plot.style_line, title="VWAP", color=color.green, linewidth=1)
plot(upperBand1, style=plot.style_line, title="VWAP Upper (1)", color=color.blue, linewidth=1)
plot(lowerBand1, style=plot.style_line, title="VWAP Lower (1)", color=color.red, linewidth=1)

// Trading Logic (Long Only)
longCondition = close < lowerBand1 and close[1] >= lowerBand1 // Price crosses below the lower band

// Get the current time in minutes
currentTime = timestamp("GMT-0", year(timenow), month(timenow), dayofmonth(timenow), hour(timenow), minute(timenow))

// Check if it's time to place a new order based on gap
canPlaceNewOrder = na(lastEntryTime) or (currentTime - lastEntryTime) >= gapMinutes * 60 * 1000

// Close condition based on profit target
if (strategy.position_size > 0)
    if (close - lastEntryPrice >= profitTarget)
        strategy.close("B")
        lastEntryTime := na // Reset last entry time after closing

// Execute Long Entry
if (longCondition and canPlaceNewOrder)
    strategy.entry("B", strategy.long)
    lastEntryPrice := close // Store the entry price
    lastEntryTime := currentTime // Update the last entry time

    // Add label for the entry
    label.new(bar_index, close, "B", style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small)

// Optional: Plot previous VWAP for reference
prevwap := newSession ? myvwap[1] : prevwap[1]
plot(showPrevVWAP ? prevwap : na, style=plot.style_circles, color=close > prevwap ? color.green : color.red)