Diese Strategie basiert auf der Überschneidung von zwei VWAP-Linien aus verschiedenen Perioden, die mit dem RSI-Indikator bestätigt werden. Sie erzeugt ein langes Signal, wenn der Preis über die VWAP-Linie bricht und der RSI über dem Überverkaufsniveau liegt, und ein kurzes Signal, wenn der Preis unter die VWAP-Linie bricht und der RSI unter dem Überkaufsniveau liegt. Die Strategie zielt darauf ab, die Ausbruchbewegungen des Preises im Verhältnis zum VWAP zu erfassen, während der RSI verwendet wird, um potenzielle falsche Ausbrüche auszufiltern.
Die VWAP- und RSI-Crossover-Strategie ist eine einfache und einfach zu bedienende Handelsmethode, die darauf abzielt, potenzielle Gewinne zu erzielen, indem sie die Ausbruchbewegungen des Preises im Verhältnis zum VWAP erfasst. Die Strategie hat jedoch auch Probleme wie Parameteroptimierung, schlechte Performance in Rangebound-Märkten und fehlendes Risikomanagement. Durch die Einführung von Multi-Timeframe-Analysen, die Kombination mit anderen technischen Indikatoren, die Optimierung von Einstiegs- und Ausstiegsregeln und die Hinzufügung von Risikokontrollmaßnahmen können die Robustheit und Praktikabilität der Strategie weiter verbessert werden.
/*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")