Voy a dejar esto por aqui porque a alguien le puede ser de utilidad. Los que usamos una cuenta gratuita de tradingview y estamos limitados a 3 indicadores es un coñazo tener que andar poniendo y quitando indicadores, asi que he juntado 5 osciladores dentro del mismo indicador.Los osciladores son:
- RSI
- Estocastico
- MFI
- Momentum
- ADX
Solo teneis que ir al editor Pine y crear un nuevo indicador, borrais el contenido y pegais el siguiente codigo:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © M31g0
//@version=4
study(title="Oscilometro", shorttitle="Oscilometro", format=format.price, precision=2, resolution="")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#FFFB00, linewidth=2)
periodK = input(14, title="K", minval=1)
periodD = input(3, title="D", minval=1)
smoothK = input(3, title="Smooth", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
plot(k, title="%K", color=#0094FF, linewidth=1)
plot(d, title="%D", color=#FF6A00, linewidth=1)
l25 = hline(25, "25 Band", color=#434651, linestyle=hline.style_dotted)
l50 = hline(50, "50 Band", color=#434651, linestyle=hline.style_dotted)
l75 = hline(75, "75 Band", color=#434651, linestyle=hline.style_dotted)
h0 = hline(80, "80 Band", color=#FF0000, linewidth=0)
h1 = hline(20, "20 Band", color=#05AC00, linewidth=0)
band1 = hline(70, "70 Band", color=#FF0000, linewidth=0)
band0 = hline(30, "30 Band", color=#05AC00, linewidth=0)
fill(h0, band1, color=#FF0000, transp=75, title="Background")
fill(h1, band0, color=#05AC00, transp=75, title="Background")
length = input(title="Length", type=input.integer, defval=14, minval=1, maxval=2000)
src2 = hlc3
upper = sum(volume * (change(src2) <= 0 ? 0 : src2), length)
lower = sum(volume * (change(src2) >= 0 ? 0 : src2), length)
_rsi(upper, lower) =>
if lower == 0
100
if upper == 0
0
100.0 - (100.0 / (1.0 + upper / lower))
mf = _rsi(upper, lower)
plot(mf, "MFI", color=#ce93d8, linewidth=2)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
up2 = change(high)
down2 = -change(low)
plusDM = na(up2) ? na : (up2 > down2 and up2 > 0 ? up2 : 0)
minusDM = na(down2) ? na : (down2 > up2 and down2 > 0 ? down2 : 0)
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
plot(sig, color=#434651, transp=75, style=plot.style_area, title="ADX")
length4 = input(title="Length", type=input.integer, defval=14)
src4 = input(close, "Source", type = input.source)
_pr(length4) =>
max = highest(length4)
min = lowest(length4)
100 * (src4 - max) / (max - min)
percentR = _pr(length4) +100
plot(percentR, title="%R", color=#e91e63, linewidth=1)
Se que el indicador esta un poco sobrecargado, pero ahi cada uno en la configuracion ya marca y desmarca lo que le interese ver, yo en concreto solo suelo utilizar RSI+Estocastico+ADX
Evidentemente estoy usando una paleta de colores que me gusta a mi, pero cada uno es libre de cambiar color y tamaño de lineas en la configuracion, lo que si recomiendo es desmarcar las bandas 80,20,70 y 30 que son necesarias para crear el sombreado pero las lineas en si no son necesarias y solo ensucian el indicador
PD: niveles de sobrecompra en Estocastico, MFI y Momentum , por encima del sombreado rojo
niveles de sobreventa en Estocastico, MFI y Momentum, por debajo del sombreado verde
nivel de sobrecompra de RSI a partir del sombreado rojo
nivel de sobreventa de RSI a partir del sombreado verde
niveles de ADX , las lineas de puntos de 25/50/75 (Tendencia fuerte, muy fuerte, Tsunami)
PD2: No publico el indicador en tradingview porque tengo cuenta gratuita y me piden el numero del movil para hacerlo, y despues de la filtracion de datos de Ledger no cedo mis datos a la ligera, pero si alguien quiere publicarlo es libre de hacerlo