Olá, comerciantes.
Este indicador utiliza o mesmo conceito do meu indicador anterior
Trata-se de um indicador simples de
Ele pode detectar níveis de sobrecompra e sobrevenda até 5 prazos, o que ajuda os comerciantes a detectar pontos de reversão potenciais com mais facilidade.
Existem opções para selecionar intervalos de tempo de 1 a 5 para detectar sobrecompra e sobrevenda.
Aqua Background está vendida, procurando por Long. Orange Background está "Overbought", à procura de "Short".
Diverte-te.
/*backtest start: 2021-05-08 00:00:00 end: 2022-05-07 23:59:00 period: 6h basePeriod: 15m exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © thakon33 // __ __ __ ____ ____ // / /_/ / ___ _/ /_____ ___ |_ /|_ / // / __/ _ \/ _ `/ '_/ _ \/ _ \_/_ <_/_ < // \__/_//_/\_,_/_/\_\\___/_//_/____/____/ //@version=5 indicator("RSI MTF Ob+Os") //------------------------------------------------------------------------------ // Input var g_rsi = "[ RSI SETTING ]" rsiSrc = input (title="Source", defval=close, group=g_rsi) rsiLength = input.int(title="Length", defval=14, minval=1, group=g_rsi) rsiOverbought = input.int(title="Overbought", defval=65, minval=50, maxval=99, step=1, group=g_rsi) rsiOversold = input.int(title="Oversold", defval=35, minval=1, maxval=50, step=1, group=g_rsi) var g_tf = "[ SELECT TIMEFRAME ]" rsiTf1 = input.timeframe(title="Timeframe 1", defval="15", group=g_tf, inline="tf1") rsiTf2 = input.timeframe(title="Timeframe 2", defval="30", group=g_tf, inline="tf2") rsiTf3 = input.timeframe(title="Timeframe 3", defval="60", group=g_tf, inline="tf3") rsiTf4 = input.timeframe(title="Timeframe 4", defval="120", group=g_tf, inline="tf4") rsiTf5 = input.timeframe(title="Timeframe 5", defval="240", group=g_tf, inline="tf5") rsiTf1_E = input.bool(title="", defval=true, group=g_tf, inline="tf1") rsiTf2_E = input.bool(title="", defval=true, group=g_tf, inline="tf2") rsiTf3_E = input.bool(title="", defval=true, group=g_tf, inline="tf3") rsiTf4_E = input.bool(title="", defval=true, group=g_tf, inline="tf4") rsiTf5_E = input.bool(title="", defval=true, group=g_tf, inline="tf5") //------------------------------------------------------------------------------ // Calculate RSI Fsec(Sym, Tf, Exp) => request.security(Sym, Tf, Exp[barstate.isrealtime ? 1 : 0], barmerge.gaps_off, barmerge.lookahead_off) [barstate.isrealtime ? 0 : 1] rsi1 = Fsec(syminfo.tickerid, rsiTf1, ta.rsi(rsiSrc, rsiLength)) rsi2 = Fsec(syminfo.tickerid, rsiTf2, ta.rsi(rsiSrc, rsiLength)) rsi3 = Fsec(syminfo.tickerid, rsiTf3, ta.rsi(rsiSrc, rsiLength)) rsi4 = Fsec(syminfo.tickerid, rsiTf4, ta.rsi(rsiSrc, rsiLength)) rsi5 = Fsec(syminfo.tickerid, rsiTf5, ta.rsi(rsiSrc, rsiLength)) //------------------------------------------------------------------------------ // RSI Overbought and Oversold detect rsi1_Ob = not rsiTf1_E or rsi1 >= rsiOverbought rsi2_Ob = not rsiTf2_E or rsi2 >= rsiOverbought rsi3_Ob = not rsiTf3_E or rsi3 >= rsiOverbought rsi4_Ob = not rsiTf4_E or rsi4 >= rsiOverbought rsi5_Ob = not rsiTf5_E or rsi5 >= rsiOverbought rsi1_Os = not rsiTf1_E or rsi1 <= rsiOversold rsi2_Os = not rsiTf2_E or rsi2 <= rsiOversold rsi3_Os = not rsiTf3_E or rsi3 <= rsiOversold rsi4_Os = not rsiTf4_E or rsi4 <= rsiOversold rsi5_Os = not rsiTf5_E or rsi5 <= rsiOversold rsiOb = rsi1_Ob and rsi2_Ob and rsi3_Ob and rsi4_Ob and rsi5_Ob rsiOs = rsi1_Os and rsi2_Os and rsi3_Os and rsi4_Os and rsi5_Os //------------------------------------------------------------------------------ // Drawing on chart plot (rsiTf1_E ? rsi1 : na, title="TF 1", color=color.rgb(255, 205, 22, 20), linewidth=1) plot (rsiTf2_E ? rsi2 : na, title="TF 2", color=color.rgb(255, 22, 239, 20), linewidth=1) plot (rsiTf3_E ? rsi3 : na, title="TF 3", color=color.rgb(38, 22, 255, 0), linewidth=1) plot (rsiTf4_E ? rsi4 : na, title="TF 4", color=color.rgb(123, 253, 22, 20), linewidth=1) plot (rsiTf5_E ? rsi5 : na, title="TF 5", color=color.rgb(0, 255, 255, 50), linewidth=1) strategy.entry("BUY", strategy.long, when=rsiOb) strategy.entry("SELL", strategy.short, when=rsiOs) //============================================================================== //==============================================================================