
Strategi ini didasarkan pada persilangan garis VWAP dari dua kitaran yang berbeza, dan digabungkan dengan RSI untuk mengesahkan isyarat perdagangan. Sinyal multisignal dihasilkan apabila harga melangkaui garis VWAP ke atas dan RSI lebih tinggi daripada paras oversell; isyarat kosong dihasilkan apabila harga melangkaui garis VWAP ke bawah dan RSI lebih rendah daripada paras oversell.
Strategi penyambungan purata purata dan indeks relatif kuat adalah strategi perdagangan yang mudah dan mudah digunakan untuk mendapatkan keuntungan yang berpotensi dengan menangkap pergerakan harga berbanding VWAP. Tetapi strategi ini juga mempunyai masalah seperti pengoptimuman parameter, prestasi pasaran yang tidak stabil, kurangnya pengurusan risiko. Dengan memperkenalkan analisis jangka masa yang banyak, menggabungkan dengan petunjuk teknikal lain, mengoptimumkan peraturan masuk, dan menambahkan kaedah kawalan risiko, anda dapat meningkatkan lagi kestabilan dan kepraktisan strategi.
/*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")