RSI MTF Ob+Os

Auteur:Inventeur de la quantification, Date: 2022-05-09 15h35 et 09 min
Les étiquettes:Indice de résistance

Bonjour les commerçants,

Cet indicateur utilise le même concept que mon précédent indicateur CCI MTF Ob+Os.

Il s'agit d'un simple indicateur indice de force relative (RSI) avec des niveaux de surachat et de survente sur plusieurs délais (MTF).

Il peut détecter les niveaux de surachat et de survente jusqu'à 5 délais, ce qui aide les traders à repérer plus facilement un point d'inversion potentiel.

Il existe des options pour sélectionner des délais allant de 1 à 5 pour détecter le surachat et le survente.

Aqua Background est en survente, à la recherche de Long. Orange Background est "Overbought", à la recherche de "Short".

Amusez-vous!

img


/*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)


//==============================================================================

//==============================================================================

Relationnée

Plus de