Esta estrategia se basa en el cruce de dos líneas VWAP de períodos diferentes, confirmadas con el indicador RSI. Genera una señal larga cuando el precio se rompe por encima de la línea VWAP y el RSI está por encima del nivel de sobreventa, y una señal corta cuando el precio se rompe por debajo de la línea VWAP y el RSI está por debajo del nivel de sobrecompra. La estrategia tiene como objetivo capturar los movimientos de ruptura del precio en relación con el VWAP mientras utiliza el RSI para filtrar posibles rupturas falsas.
La estrategia VWAP y RSI Crossover es un método de negociación simple y fácil de usar que tiene como objetivo capturar ganancias potenciales al detectar movimientos de ruptura del precio en relación con el VWAP. Sin embargo, la estrategia también tiene problemas como optimización de parámetros, bajo rendimiento en los mercados de rango y falta de gestión de riesgos. Al introducir análisis de marcos de tiempo múltiples, combinarlo con otros indicadores técnicos, optimizar las reglas de entrada y salida y agregar medidas de control de riesgos, la robustez y practicidad de la estrategia se pueden mejorar aún más. Los operadores deben hacer los ajustes y optimizaciones apropiados basados en su propio estilo de negociación y características del mercado al aplicar esta estrategia.
/*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")