Chiến lược này dựa trên sự chéo chéo của hai đường VWAP từ các giai đoạn khác nhau, được xác nhận bằng chỉ số RSI. Nó tạo ra một tín hiệu dài khi giá vượt qua đường VWAP và RSI nằm trên mức bán quá mức, và một tín hiệu ngắn khi giá vượt qua đường VWAP và RSI nằm dưới mức mua quá mức. Chiến lược nhằm mục đích nắm bắt các chuyển động đột phá của giá tương đối với VWAP trong khi sử dụng RSI để lọc các đột phá sai tiềm năng.
Chiến lược VWAP và RSI Crossover là một phương pháp giao dịch đơn giản và dễ sử dụng nhằm mục đích nắm bắt lợi nhuận tiềm năng bằng cách nắm bắt các chuyển động đột phá của giá so với VWAP. Tuy nhiên, chiến lược cũng có các vấn đề như tối ưu hóa tham số, hiệu suất kém trong các thị trường giới hạn phạm vi và thiếu quản lý rủi ro. Bằng cách giới thiệu phân tích nhiều khung thời gian, kết hợp với các chỉ số kỹ thuật khác, tối ưu hóa các quy tắc nhập và xuất, và thêm các biện pháp kiểm soát rủi ro, độ mạnh mẽ và tính thực tế của chiến lược có thể được nâng cao hơn nữa. Các nhà giao dịch cần phải thực hiện điều chỉnh và tối ưu hóa phù hợp dựa trên phong cách giao dịch và đặc điểm thị trường của riêng họ khi áp dụng chiến lược này.
/*backtest start: 2023-05-05 00:00:00 end: 2024-05-10 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("VWAP and RSI Strategy with Alerts", overlay=true) // Inputs cumulativePeriod = input(20, "Rolling Period for VWAP", minval=1) rsiPeriod = input(20, "RSI Period", minval=1) rsiOverbought = input(70, "RSI Overbought Level") rsiOversold = input(30, "RSI Oversold Level") tradeQty = input(1, "Trade Quantity", minval=0.01) // Cantidad de la operación // VWAP Calculation typicalPrice = (high + low + close) / 3 typicalPriceVolume = typicalPrice * volume cumulativeTypicalPriceVolume = sum(typicalPriceVolume, cumulativePeriod) cumulativeVolume = sum(volume, cumulativePeriod) vwapValue = cumulativeTypicalPriceVolume / cumulativeVolume plot(vwapValue, color=color.blue, title="VWAP") // RSI Calculation rsiValue = rsi(close, rsiPeriod) hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) // Entry Conditions longCondition = crossover(close, vwapValue) and rsiValue > rsiOversold shortCondition = crossunder(close, vwapValue) and rsiValue < rsiOverbought // Strategy Execution for Entries if (longCondition) strategy.entry("Long", strategy.long, qty=tradeQty) if (shortCondition) strategy.entry("Short", strategy.short, qty=tradeQty) // Conditions for Exiting exitLongCondition = crossunder(close, vwapValue) or rsiValue > rsiOverbought // Salir de long cuando el precio cruce debajo del VWAP o el RSI sea alto exitShortCondition = crossover(close, vwapValue) or rsiValue < rsiOversold // Salir de short cuando el precio cruce por encima del VWAP o el RSI sea bajo // Strategy Execution for Exits strategy.exit("Exit Long", "Long", when=exitLongCondition) strategy.exit("Exit Short", "Short", when=exitShortCondition) // Alert Conditions alertcondition(longCondition, title="Enter Long", message="ENTER-LONG_BINANCE-FUTURES_BTCUSDT_WunderTrading-1_1M_1354a524d74bc295") alertcondition(exitLongCondition, title="Exit Long", message="EXIT-LONG_BINANCE-FUTURES_BTCUSDT_WunderTrading-1_1M_1354a524d74bc295") alertcondition(shortCondition, title="Enter Short", message="ENTER-SHORT_BINANCE-FUTURES_BTCUSDT_WunderTrading-1_1M_1354a524d74bc295") alertcondition(exitShortCondition, title="Exit Short", message="EXIT-SHORT_BINANCE-FUTURES_BTCUSDT_WunderTrading-1_1M_1354a524d74bc295")