Strategi Pembalikan Volatiliti VWAP Sistem Pecah Panjang dan Pendek pada Saluran Sisihan Piawai

VWAP SD SMA ATR RSI
Tarikh penciptaan: 2025-02-20 09:33:31 Akhirnya diubah suai: 2025-02-20 09:33:31
Salin: 1 Bilangan klik: 469
2
fokus pada
319
Pengikut

Strategi Pembalikan Volatiliti VWAP Sistem Pecah Panjang dan Pendek pada Saluran Sisihan Piawai Strategi Pembalikan Volatiliti VWAP Sistem Pecah Panjang dan Pendek pada Saluran Sisihan Piawai

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan berdasarkan VWAP dan saluran standard deviasi, yang berdagang dengan mengenal pasti bentuk harga yang berbalik di sempadan saluran. Strategi ini menggabungkan konsep perdagangan yang dinamika dan regresi nilai rata-rata untuk menangkap peluang perdagangan apabila harga menembusi titik teknikal penting.

Prinsip Strategi

Strategi ini adalah dengan menggunakan VWAP sebagai pusat harga untuk membina saluran atas dan bawah menggunakan perbezaan piawaian 20 kitaran. Cari peluang untuk melakukan lebih banyak di dekat landasan bawah, cari peluang untuk melakukan lebih sedikit di dekat landasan atas.

  • Buat banyak syarat: harga membentuk bentuk pembalikan bullish di bawah landasan, kemudian memecahkan paras tertinggi yang terdahulu
  • Keadaan kosong: harga membentuk bentuk penurunan di atas, kemudian memecahkan titik rendah garis negatif sebelumnya
  • Tetapan Stop: Tambah dengan sasaran VWAP dan atas landasan, kosongkan di bawah landasan
  • Tetapan hentikan kerugian: melakukan lebih banyak untuk hentikan paras paras paras yang rendah, dan melakukan lebih banyak untuk hentikan paras yang tinggi

Kelebihan Strategik

  1. Menggabungkan kelebihan trend-following dan reversal trading, ia boleh menangkap trend yang berterusan dan peluang untuk reversal.
  2. Menggunakan VWAP sebagai penunjuk utama, lebih baik mencerminkan bekalan dan permintaan sebenar pasaran
  3. Menggunakan kaedah penghentian batch, keuntungan boleh dicapai pada harga yang berbeza
  4. Pengaturan Henti Kerosakan yang Rasional dan Mengendalikan Risiko
  5. Logik dasar yang jelas, parameter yang mudah, mudah difahami dan dilaksanakan

Risiko Strategik

  1. Kemungkinan sering mencetuskan hentian dalam pasaran yang bergolak
  2. Peringkat menyusun secara mendatar mungkin menghasilkan terlalu banyak isyarat palsu
  3. Tempoh masa yang lebih sensitif kepada pengiraan VWAP
  4. Keluasan saluran standard mungkin tidak sesuai untuk semua keadaan pasaran
  5. Mungkin terlepas peluang penting untuk menjadi trend.

Arah pengoptimuman strategi

  1. Pengenalan penapis lalu lintas untuk meningkatkan kualiti isyarat
  2. Menambah indikator pengesahan trend seperti sistem purata bergerak
  3. Dinamik menyesuaikan kitaran standard deviation untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
  4. Mengoptimumkan nisbah penangguhan batch untuk meningkatkan hasil keseluruhan
  5. Tambah penapis masa untuk mengelakkan dagangan pada waktu yang tidak sesuai
  6. Pertimbangkan untuk menambah indikator kadar turun naik dan mengoptimumkan pengurusan kedudukan

ringkaskan

Ini adalah sistem perdagangan yang lengkap yang menggabungkan VWAP, saluran standard deviasi dan bentuk harga. Strategi ini melakukan perdagangan dengan mencari isyarat pembalikan pada harga penting dan menggunakan hentian sekumpulan dan hentian yang munasabah untuk menguruskan risiko. Walaupun terdapat beberapa batasan, strategi ini dapat meningkatkan kestabilan dan keuntungan dengan arah pengoptimuman yang disyorkan.

Kod sumber strategi
/*backtest
start: 2025-01-20 00:00:00
end: 2025-02-19 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6  
strategy("VRS Strategy", overlay=true)  

// Calculate VWAP  
vwapValue = ta.vwap(close)  

// Calculate standard deviation for the bands  
stdDev = ta.stdev(close, 20) // 20-period standard deviation for bands  
upperBand = vwapValue + stdDev  
lowerBand = vwapValue - stdDev  

// Plot VWAP and its bands  
plot(vwapValue, color=color.blue, title="VWAP", linewidth=2)  
plot(upperBand, color=color.new(color.green, 0), title="Upper Band", linewidth=2)  
plot(lowerBand, color=color.new(color.red, 0), title="Lower Band", linewidth=2)  

// Signal Conditions  
var float previousGreenCandleHigh = na  
var float previousGreenCandleLow = na  
var float previousRedCandleLow = na  

// Detect bearish candle close below lower band  
bearishCloseBelowLower = close[1] < lowerBand and close[1] < open[1]  

// Detect bullish reversal candle after a bearish close below lower band  
bullishCandle = close > open and low < lowerBand // Ensure it's near the lower band  
candleReversalCondition = bearishCloseBelowLower and bullishCandle  

if (candleReversalCondition)  
    previousGreenCandleHigh := high[1]  // Capture the high of the previous green candle  
    previousGreenCandleLow := low[1]     // Capture the low of the previous green candle  
    previousRedCandleLow := na            // Reset previous red candle low  

// Buy entry condition: next candle breaks the high of the previous green candle  
buyEntryCondition = not na(previousGreenCandleHigh) and close > previousGreenCandleHigh  

if (buyEntryCondition)  
    // Set stop loss below the previous green candle  
    stopLoss = previousGreenCandleLow   
    risk = close - stopLoss // Calculate risk for position sizing  

    // Target Levels  
    target1 = vwapValue // Target 1 is at VWAP  
    target2 = upperBand  // Target 2 is at the upper band  

    // Ensure we only enter the trade near the lower band  
    if (close < lowerBand)  
        strategy.entry("Buy", strategy.long)  
        
        // Set exit conditions based on targets  
        strategy.exit("Take Profit 1", from_entry="Buy", limit=target1)  
        strategy.exit("Take Profit 2", from_entry="Buy", limit=target2)  
        strategy.exit("Stop Loss", from_entry="Buy", stop=stopLoss)  

// Sell signal condition: Wait for a bearish candle near the upper band  
bearishCandle = close < open and high > upperBand // A bearish candle should be formed near the upper band  
sellSignalCondition = bearishCandle  

if (sellSignalCondition)  
    previousRedCandleLow := low[1] // Capture the low of the current bearish candle  

    // Sell entry condition: next candle breaks the low of the previous bearish candle  
    sellEntryCondition = not na(previousRedCandleLow) and close < previousRedCandleLow  

    if (sellEntryCondition)  
        // Set stop loss above the previous bearish candle  
        stopLossSell = previousRedCandleLow + (high[1] - previousRedCandleLow) // Set stop loss above the bearish candle  
        targetSell = lowerBand // Target for sell is at the lower band  

        // Ensure we only enter the trade near the upper band  
        if (close > upperBand)  
            strategy.entry("Sell", strategy.short)  
            
            // Set exit conditions for sell  
            strategy.exit("Take Profit Sell", from_entry="Sell", limit=targetSell)  
            strategy.exit("Stop Loss Sell", from_entry="Sell", stop=stopLossSell)  

// Reset previous values when a trade occurs  
if (strategy.position_size > 0)  
    previousGreenCandleHigh := na  
    previousGreenCandleLow := na  
    previousRedCandleLow := na