Quiero en este articulo comentar un indicador poco conocido, pero que resulta muy útil para ver si un valor está en tendencia o no: el TSI (trend strength indicator). Este indicador supera de largo, en mi opinión, al clásico indicador de tendencias, el ADX. Te cuento a continuación mi investigación:
El TSI es muy sencillo:
La idea es calcular un ratio que divide el momento de un valor (es decir la cantidad de movimiento de un valor en 10 días) entre su volatilidad.
Una acción o un índice que se mueve muy deprisa en relación a su volatilidad, es un valor con tendencia fuerte, menos propenso a caídas y rebotes, más constante en su dirección.
Para obtener el indicador, suavizamos los resultados del ratio con una doble media simple de 10 y 100 días.
Este indicador va a mostrar una curva bastante suave, que indica si el indice o acción tiene tendencia clara o no. Veámoslo en el SP500:
El TSI sube cuando la tendencia está más clara, y baja cuando es más difusa.
El umbral que podemos considerar como frontera entre estado tendencial o no tendencial es 1,65. Por encima de ese valor la tendencia es más probable.
Es curioso que en el mercado actual de 2016, la tendencia del mercado yanky es inexistente desde el mes de Agosto. Y además está bajando, es decir es más probable que lleguen los sustos.
El indicador clásico: el ADX
El TSI no lo utiliza mucha gente, que yo sepa. El indicador clásico para medir la tendencia, y que usa todo el mundo es el ADX. Este es su gráfico:
El ADX, creado por Welles Wilder en 1978, mide la tendencia con un indicador principal, que en el gráfico aparece representado con la linea negra.
Este indicador debe estar por encima de 20 para considerar que la tendencia es fuerte. Si esta por debajo de 20, no hay tendencia clara ni bajista ni alcista.
Pero además, el ADX muestra otras dos líneas, el +DI (Plus directional Indicator), que es la línea verde; y el -DI (Minus directional indicator), que es la linea roja.
Estas dos líneas nos permiten saber hacia donde va la tendencia si ésta es clara: cuando +DI es mayor que -DI, la tendencia es al alza. Cuando -DI es mayor que +DI, la tendencia es bajista.
Es decir, el ADX parece en principio más sofisticado que el TSI, puesto que tiene tres lineas y permite saber la dirección de la tendencia, mientras que el TSI no dice la dirección de la tendencia.
El ADX indica actualmente una tendencia bajista en el SP500, porque el ADX supera 20 y el -DI > +DI.
Sin embargo, a mi el ADX casi nunca me ha sido útil para decidir compras o ventas. En cambio el TSI me resulta mucho más predictivo y mucho más útil.
Una prueba sencilla
Para comprobar ambos indicadores, he desarrollado un sencillo sistema de inversión, y lo he probado con el ADX y con el TSI.
Para la prueba utilizo como universo de activos mi lista de 9 ETFs:
Son ETFs de gran liquidez, que representan los sectores de la economía de EEUU.
Veamos inicialmente un «comprar-y-mantener» del SP 500 desde el 2003 hasta el 2016. No consideramos dividendos.
El SP500 ha ganado más de un 6% al año, aunque con una volatilidad muy alta. Pobres resultados y mucho riesgo.
Veamos ahora el sistema comprando ETFs con tendencia.
Primero usamos el ADX. Las normas serían:
- Comprar los 3 ETFs que tengan tendencia porque el ADX>20 y a la vez el +DI > -DI, es decir alcistas.
- En caso de que haya más de 3 ETFs con tendencia alcista, priorizar los que tengan un ADX más alto, que son las tendencias más fuertes
- La venta: se mantiene cualquier ETF hasta que el ADX pierda el nivel 20 o bien el +DI se haga menor que el -DI (es decir pase a tendencia bajista)
Este sencillo sistema debería, en promedio, mantener comprados los 3 ETFs con mejores tendencias alcistas. Pero no salen buenos datos:
Aunque la peor racha de pérdidas se contiene mucho, los resultados empeoran un montón; siguen en positivo, pero sólo ganan un 1,8% al año.
He intentado mejorar la selección del ADX cambiando el parámetro 20 a 15, que me parece más correcto. Es decir, lo mismo que antes pero comprando cuando ADX>15:
La rentabilidad mejora casi un punto pero la peor racha empeora.
He probado otras configuraciones, pero este indicador de tendencias siempre me resulta frustrante: no me acaba de ir bien.
Probamos ahora el método adaptado al TSI. Puesto que el valor TSI no nos indica por si mismo si la tendencia es alcista o bajista, necesitamos algo que sustituya al +DI y -DI, un indicador para saber si se está subiendo o bajando.
Mi modo habitual para saber si un valor sube o no sube es usar dos medias simples: una rápida de 20 días y otra lenta, de 200.
Considero que un valor es alcista si supera a la media de 20 días o de 200 días. Si esta debajo de ambas, es un valor bajista. Esta idea permite aprovechar valores alcistas de corto plazo y de largo plazo.
Obviamente no nos podemos basar sólo en estas sencillas medias para comprar o vender, pero vamos a probarlas junto con el TSI:
Reglas:
- Comprar los 3 ETFs que tenga tendencia clara porque el TSI >1,65 y a la vez este alcista por sus medias de 20 y 200 días
- En caso de que haya más de 3 ETFs con tendencia alcista, priorizar los que tengan un TSI más alto, que son las tendencias más fuertes
- La venta: se mantiene cualquier ETF hasta que el TSI pierda el nivel 1.65 o bien se pierdan las dos medias de 20 y 200 días (es decir pase a tendencia bajista)
En este caso los resultados son:
Un promedio anual del 8% bate al mercado y machaca al sistema con el ADX. Y además baja muchísimo la peor racha de pérdidas.
Simplemente usando unas medias móviles y detectando si la tendencia es fuerte o no con el TSI.
Conclusiones
Creo por tanto que el TSI es mucho más útil que el típico ADX. Te recomiendo que le eches un vistazo si te interesa determinar tendencias.
El sistema de los 9 ETFs es poco rentable para usarlo sin más. De hecho, creo que, en general, el TSI hay que usarlo como un indicador de confirmación, ya que puede ayudar mucho a otros indicadores o técnicas.
Yo lo uso bastante para saber el tipo de estrategias que mejor funcionan en cada momento.
Si el TSI de un indice general está sobre 1,65, funcionan mejor las estrategias de momento, o tendenciales: usar medias móviles, el MACD, indicadores de momento, etc.
En cambio, cuando el TSI pierde su nivel 1,65, las estrategias idóneas son las de reversión a la media, o las que en general necesitan de poca direccionalidad: sobrecompras y sobreventas usando el Williams, o el RSI, o el estocástico; rebotes sobre soportes y resistencias, etc.
Asi que es una herramienta que creo que te puede ser útil de diversas maneras.
Lo he programado para Prorealtime, puedes descargartelo el fichero desde aqui, descomprime el zip, y luego importarlo.
¡Confío que te sea útil!
Como siempre un muy interesante artículo Gonzaga. Como ves, aunque ya no estemos en clase, continuo siguiéndote.
En este ámbito: ¿ Cual es tu opinión sobre el McClellan Oscillator y el MCClellan Sumation Index ([Indice de Suma McClellan) ?. ¿ Los has investigado ?
Gracias, Josep!
Respecto al Macclellan, te voy a ser sincero. No tengo suficiente experiencia con el como para valorarlo bien.
En principio es un buen oscilador, interesante; mejor con el MSI;
Pero no lo he usado mucho, asi que mejor no comento nada.
Aunque hace tiempo que me lo instalé, y es uno de los que tengo pendiente (desde hace tiempo) mirar con más profundidad.
Aunque yo no soy muy amigo de usar muchos indicadores;
Aun asi, ahora que me lo re-descubres, me pica la curiosidad.. lo iré probando a ver que tal..
Ya comentaré si saco conclusiones claras..
Un saludo!
Interesante artículo. Precisamente estaba buscando como configurar este indicador en PRT. Me encanta cuando nos regalas cosas. Un saludo.
Te dejo el codigo corregido, que da error en Prorealtime
rem TSI para Prorealtime
rem Gonzaga Giménez, slowinver.com
ratio=abs((close-close[10])/averagetruerange[10])
tsi=average[100](average[10](ratio))
limite = 1.65
RETURN TSI, limite as «1,65»
Pues gracias Jose, pero a mi no me da ningun error.
La linea horizontal sobre 1.65 se dibuja correctamente.
Tambien se puede dibujar devolviendo el valor tal y como haces tu, pero no es necesario.. por lo menos en mi Prorealtime el indicador va perfecto..
Un saludo!
Hola,
Creo que a Jose7674 le da error porque ha puesto «1,65» en lugar de «1.65». En PRT el separador de decimales es «.» en lugar de «,».
Aprovecho también para felicitarte por el artículo.
Un saludo.
tradingtendencial.blogspot.com
Perdón por mi comentario anterior. Acabo de darme cuenta que la variable «limite = 1.65» está bien. Donde está con 1,65 es en el entrecomillado del comando Return.
🙂
Muy interesante, como siempre
Según entiendo lo que marca si hay o no tendencia es el valor del indicador (por encima de 1,65), esto es, la pendiente de la curva no tiene nada que ver, verdad?
El indicador es para time frame diario, ¿no?. Y supongo que vale para todo tipo de mercados, valores…, ¿es así?
Lo que pasa con este y todos los indicadores es lo de siempre… hoy puedo entrar con un valor en tendencia (mayor de 1,65) y justo al día siguiente entrar en una «sin tendencia» enorme. O al revés, descartarlo porque no está en tendencia y a la semana coger el camino. O sea, que constata el presente pero evidentemente no adivina el futuro, jeje.. buen invento sería eso en esto de la bolsa.
Saludos y gracias por tantas ideas que nos ayudan a ir configurando la nuestra propia
Hola, si, la tendencia la marca el valor por encima de 1,65.
Aunque bueno, la pendiente no es un valor desdeñable: si el indicador cae con mucha fuerza y se acerca a 1,65, pues normalmente acaba por traspasar el 1,65 en poco tiempo. O al reves, si sube como un cohete desde valores menores de 1,65, pues podemos prever que supere el 1,65.
Es decir, la pendiente de subida o bajada de los indicadores siempre ayudan para reducir el retraso que a la fuerza tienen todos; es por tanto algo a considerar.
Pero si no estas seguro, el valor 1,65 es el umbral definitivo..
Y por supuesto, esto acierta un % de veces, más del 50% pero no mucho mayor.
Claro que eso puede ser suficiente para adquirir una ventaja. Pero conviene ayudarse con otras cosas..
Un saludo!
Hola,
Me ha resultado muy interesante el artículo y sólo quería consultarte si este indicador TSI está disponible para Ninjatrader, y en caso positivo, dónde sería posible descargarlo.
Las busquedas que he realizado en Internet me remiten a un TSI distinto, uno llamado True Strenght Index.Imagino que no tiene nada que ver con el que comentas, el Trend Strenght Indicator.
Gracias de antemano por la respuesta!
No Ramon, no creo que exista en Ninja porque es un indicador bastante desconocido.
No es dificil de programar, pero sólo lo he hecho para Prorealtime y para Amibroker.
En efecto, el true strength es distinto..
Un saludo!
Hola Gonzaga, me guardaba este artículo para repasarlo este fin de semana lluvi-freskito…
El indicador que mencionas en este artículo, ¿tiene que ver con el TSI que aparece en stockcharts?, porque el que aparece en stockcharts , al final no deja de ser un MACD… Te copio y pego la información del mismo:
http://stockcharts.com/school/doku.php?st=tsi&id=chart_school:technical_indicators:true_strength_index
Y es que no sé
Hola Edel.
No, ese TSI no es el mismo indicador, ni siquiera parecido.. pese a que tiene las mismas iniciales..
Un saludo!
Gracias Gonzaga, lo probaré a usar entonces en proRealtime. Saludos.
Hola
Como siempre muy interesante
El tsi funciona igual en gráficos diarios que en semanales?
Supongo que si .pero no me queda claro
Si, es un indicador que cumple las reglas fractales..
Un saludo!
Perdonad mi ignorancia, pero ¿qué es el ATR(10)
Perdona efueyo que no habia visto tu comentario
El ATR(10) es el indicador ATR de 10 días.
Y el indicador ATR es un indicador clásico, que se encuentra en todas las plataformas de chart, y que devuelve el average true range, es decir promedio de movimiento real, del precio. Cuanto más alto, más volátil..
Un saludo!
Muy buen artículo, como los del resto del blog. Gracias por el código del TSI.