Esta estratégia aplica o indicador RSI no VWAP, e determina a direção longa / curta com base em quebras do limiar RSI. Especificamente, ele fica curto quando o RSI quebra acima do nível de sobrecompra e fica longo quando o RSI quebra abaixo do nível de sobrevenda.
A vantagem desta estratégia é utilizar tanto o RSI para overbought/oversold quanto o VWAP para tendência de preço, o que ajuda a filtrar sinais falsos.
Em resumo, a estratégia VWAP de ruptura do RSI combina múltiplos indicadores para identificar oportunidades de negociação, mas requer testes e ajustes cuidadosos para se adaptar a diferentes condições de mercado.
/*backtest start: 2022-09-04 00:00:00 end: 2023-09-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Mysteriown //@version=4 strategy("RSI on VWAP Upgraded strategy", overlay=false, pyramiding = 3, commission_value = 0.04) // pyramiding is the number of positions you can take before closing all of them (be carefull if using it with a trading bot) // commission_value is the commission taken for each buy/sell // ------------------------------------------ // // ----------------- Inputs ----------------- // // ------------------------------------------ // length = input(20, title="RSI Length", type=input.integer) ovrsld = input(30, "RSI Oversold level", type=input.float) ovrbgt = input(85, "RSI Overbought level", type=input.float) lateleave = input(28, "Number of candles", type=input.integer) // lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition). // best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28 stratbull = input(title="Enter longs ?", type = input.bool, defval=true) stratbear = input(title="Enter shorts ?", type = input.bool, defval=true) bet = input(0.1, "Amount of coin/token by position", type=input.float) stratyear = input(2020, title = "Strategy Start Year") stratmonth = input(7, title = "Strategy Start Month") stratday = input(1, title = "Strategy Start Day") stratstart = timestamp(stratyear,stratmonth,stratday,0,0) // ------------------------------------------ // // ---------------- Rsi VWAP ---------------- // // ------------------------------------------ // rsiVWAP = rsi(vwap(close), length) // ------------------------------------------ // // ------------------ Plots ----------------- // // ------------------------------------------ // prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line) hline = plot(ovrbgt, color = color.gray, style=plot.style_line) lline = plot(ovrsld, color = color.gray, style=plot.style_line) fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30) fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30) // ------------------------------------------ // // ---------------- Positions --------------- // // ------------------------------------------ // if stratbull and time > stratstart strategy.entry("Long", true, bet, when = crossover(rsiVWAP, ovrsld), comment="") strategy.close("Long", when = crossover(rsiVWAP, ovrbgt)[lateleave] or crossunder(rsiVWAP, ovrbgt), comment="") if stratbear and time > stratstart strategy.entry("Short", false, bet, when = crossunder(rsiVWAP, ovrbgt), comment="") strategy.close("Short", when = crossunder(rsiVWAP, ovrsld)[lateleave] or crossover(rsiVWAP, ovrsld), comment="")