Chiến lược đảo ngược biến động VWAP Hệ thống đột phá dài và ngắn trên kênh độ lệch chuẩn

VWAP SD SMA ATR RSI
Ngày tạo: 2025-02-20 09:33:31 sửa đổi lần cuối: 2025-02-20 09:33:31
sao chép: 1 Số nhấp chuột: 469
2
tập trung vào
319
Người theo dõi

Chiến lược đảo ngược biến động VWAP Hệ thống đột phá dài và ngắn trên kênh độ lệch chuẩn Chiến lược đảo ngược biến động VWAP Hệ thống đột phá dài và ngắn trên kênh độ lệch chuẩn

Tổng quan

Chiến lược này là một hệ thống giao dịch dựa trên VWAP (transaction weighted average price) và kênh chênh lệch chuẩn, giao dịch bằng cách xác định mô hình đảo ngược của giá ở biên giới kênh. Chiến lược này kết hợp các khái niệm giao dịch về động lực và giá trị trung bình để nắm bắt cơ hội giao dịch khi giá vượt qua các điểm kỹ thuật quan trọng.

Nguyên tắc chiến lược

Cốt lõi của chiến lược là xây dựng một kênh lên xuống bằng cách sử dụng chênh lệch tiêu chuẩn 20 chu kỳ với VWAP làm trung tâm của giá. Tìm kiếm cơ hội làm nhiều gần đường ray dưới, tìm kiếm cơ hội làm trống gần đường ray trên. Cụ thể:

  • Làm nhiều điều kiện: Giá hình thành hình thức đảo ngược giá ở đường ray dưới, sau đó phá vỡ mức cao của đường dương trước đó
  • Điều kiện làm trống: Giá hình thành hình thức giảm giá trên đường đua, sau đó phá vỡ mức thấp của đường âm trước đó
  • Cài đặt dừng: làm nhiều với mục tiêu VWAP và đường ray trên, làm trống đường ray dưới
  • Cài đặt dừng lỗ: làm nhiều để dừng lỗ ở điểm thấp của đường dương ngược, làm trơ để dừng lỗ ở điểm cao của đường âm ngược

Lợi thế chiến lược

  1. Kết hợp lợi thế của việc theo dõi xu hướng và đảo ngược giao dịch, nó có thể nắm bắt được sự tiếp tục của xu hướng và cơ hội đảo ngược.
  2. Sử dụng VWAP như một chỉ số cốt lõi để phản ánh tốt hơn nhu cầu và cung thực tế của thị trường
  3. Sử dụng phương pháp ngăn chặn hàng loạt, có thể đạt được lợi nhuận ở các mức giá khác nhau
  4. Thiết lập dừng lỗ hợp lý, có thể kiểm soát rủi ro hiệu quả
  5. Logic chính sách rõ ràng, thiết lập tham số đơn giản, dễ hiểu và thực hiện

Rủi ro chiến lược

  1. Có thể thường xuyên kích hoạt dừng lỗ trong thị trường biến động mạnh
  2. Giai đoạn sắp xếp ngang có thể tạo ra quá nhiều tín hiệu giả
  3. Chu kỳ thời gian nhạy cảm với tính toán VWAP
  4. Kích thước kênh tiêu chuẩn có thể không phù hợp với tất cả các môi trường thị trường
  5. Có thể bỏ lỡ một số cơ hội quan trọng

Hướng tối ưu hóa chiến lược

  1. Tiếp theo, các bộ lọc giao thông được đưa vào để cải thiện chất lượng tín hiệu.
  2. Tăng các chỉ số xác nhận xu hướng như hệ thống trung bình di chuyển
  3. Hoạt động điều chỉnh chu kỳ chênh lệch tiêu chuẩn để thích ứng với môi trường thị trường khác nhau
  4. Tối ưu hóa tỷ lệ dừng lô hàng để tăng thu nhập tổng thể
  5. Thêm bộ lọc thời gian để tránh giao dịch trong thời gian bất lợi
  6. Xem xét tăng chỉ số biến động, tối ưu hóa quản lý vị trí

Tóm tắt

Đây là một hệ thống giao dịch hoàn chỉnh kết hợp VWAP, kênh chênh lệch tiêu chuẩn và hình thức giá. Chiến lược giao dịch bằng cách tìm kiếm tín hiệu đảo ngược tại các mức giá quan trọng và quản lý rủi ro bằng cách sử dụng các lệnh dừng và dừng hợp lý. Mặc dù có một số hạn chế, nhưng bằng hướng tối ưu hóa được đề xuất, bạn có thể nâng cao hơn nữa sự ổn định và lợi nhuận của chiến lược.

Mã nguồn chiến lược
/*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