Sumber daya yang dimuat... Pemuatan...

Strategi Perdagangan Breakout VWAP dengan Penyimpangan Standar Ganda

Penulis:ChaoZhang, Tanggal: 2025-01-06 16:31:36
Tag:VWAPSDVOLHL2

img

Gambaran umum

Strategi ini adalah sistem trend breakout berdasarkan VWAP (Volume Weighted Average Price) dan saluran standar deviasi. Strategi ini membangun rentang harga dinamis dengan menghitung VWAP dan band deviasi standar untuk menangkap peluang breakout ke atas. Strategi ini terutama bergantung pada sinyal breakthrough band deviasi standar untuk perdagangan, dengan target keuntungan dan interval pesanan untuk mengendalikan risiko.

Prinsip Strategi

  1. Perhitungan Indikator Inti:
  • Menghitung VWAP menggunakan harga HL2 intraday dan volume
  • Menghitung standar deviasi berdasarkan volatilitas harga
  • Setel 1,28 kali standar deviasi atas dan bawah band
  1. Logika perdagangan:
  • Kondisi masuk: harga melintasi band bawah kemudian naik di atasnya
  • Kondisi keluar: mencapai target laba yang telah ditetapkan sebelumnya
  • Interval pesanan minimum untuk menghindari perdagangan yang sering

Keuntungan Strategi

  1. Yayasan Statistik
  • Referensi pusat harga berdasarkan VWAP
  • Pengukuran volatilitas menggunakan standar deviasi
  • Penyesuaian rentang perdagangan dinamis
  1. Pengendalian Risiko
  • Penentuan target laba tetap
  • Kontrol frekuensi perdagangan
  • Strategi jangka panjang hanya mengurangi risiko

Risiko Strategi

  1. Risiko Pasar
  • Penembusan palsu selama volatilitas tinggi
  • Kesulitan dalam tepat waktu pembalikan tren
  • Peningkatan kerugian di pasar penurunan
  1. Risiko Parameter
  • Sensitivitas terhadap pengaturan pengganda deviasi standar
  • Optimasi target keuntungan diperlukan
  • Interval perdagangan mempengaruhi kinerja

Arahan Optimasi

  1. Optimasi Sinyal
  • Tambahkan filter tren
  • Masukkan konfirmasi perubahan volume
  • Sertakan indikator teknis tambahan
  1. Optimasi Manajemen Risiko
  • Penempatan stop loss dinamis
  • Ukuran posisi berdasarkan volatilitas
  • Sistem manajemen pesanan yang ditingkatkan

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang menggabungkan prinsip-prinsip statistik dan analisis teknis. Melalui kombinasi VWAP dan band deviasi standar, ini membangun sistem perdagangan yang relatif dapat diandalkan. Keuntungan utamanya terletak pada dasar statistik ilmiah dan mekanisme kontrol risiko yang komprehensif, tetapi optimasi terus-menerus dari parameter dan logika perdagangan masih diperlukan dalam aplikasi praktis.


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

Berkaitan

Lebih banyak