¡Visita la nueva web!

sábado, 14 de noviembre de 2009

Force index. Cómo usar este indicador



El indicador force index (índice de fuerza) lo inventó el Dr. Alexander Elder, autor de varios libros altamente recomendados, entre los que destaca el que le ha hecho famoso, "Trading for a living". En este y otros de sus libros, Elder detalla cómo se utiliza su indicador.

Guiándonos por sus explicaciones, vamos a aclarar hoy qué representa force index y cómo aprovechar sus ventajas.

Como todos los buenos indicadores, force index, tiene una construcción muy sencilla. Se trata, simplemente, de graficar la pendiente entre los últimos dos precios, multiplicada por el volumen implicado.

Sin embargo, force index no se usa así, recién salida de la fórmula. Hay que aplicarle una media móvil (preferentemente, exponencial). Esta media puede ser muy corta, de 2 periodos, o medianamente larga, de 13 periodos (por ejemplo).

La EMA2 (media móvil exponencial de 2 periodos) de force index sirve para unas cosas y se utiliza de manera diferente que la EMA13.

En Novatos Trading Club solemos añadir el indicador force index en la parte inferior del gráfico diario como complemento de precisión para el estocástico. No añadimos force index puro, sino que representamos directamente sus dos medias móviles exponenciales de dos y trece periodos:


Comencemos por la EMA2:

Sirve para localizar el punto de entrada en nuestras operaciones. Si estuviésemos pensando en una operación a favor de la tendencia principal en el precio, se abrirían largos cuando la EMA2 de force index se hiciera negativa o se abrirían cortos cuando fuera aflorase al lado positivo.

A veces, también avisa para salir mostrando divergencias con el precio. Si los picos superiores de la EMA2 bajan, esto es, si el segundo es menos pronunciado que el primero, pero el precio sigue subiendo, force index nos está avisando de que el precio va a caer y de que es momento de cerrar largos. Al revés también sirve: Si los picos inferiores suben, es decir, el segundo es menos pronunciado que el segundo, aunque el precio siga bajando, quiere decir que el precio no tardará en virar al alza, por lo que recomienda cerrar cortos.

Respecto a la EMA13 de force index:

Esta media móvil de force index representa las alternancias en el poder entre alcistas y bajistas.
Si la EMA13 está normalmente por encima o por debajo de la línea de cero, indica que hay tendencia, alcista o bajista. Si está oscilando alrededor de esta línea, avisa de que estamos en un mercado lateral.

Así, si la EMA13 vuelve a marcar un pico en la misma mitad en la que estaba (positiva o negativa), quiere decir que lo más probable es que la tendencia continúe. Si se cambia de bando, suele marcar el final de una tendencia.

Además, las divergencias entre el precio y la EMA13 avisan de virajes fuertes en el precio.

Hay un caso especial, que es el de la divergencia alcista con un gran pico negativo de la EMA13 de force index.

Cuando aparece este pico hacia abajo en la EMA13, está señalando que el mínimo correspondiente en el precio se va a volver a alcanzar (o superar) pronto. Cuando esto sucede, muchas veces, se genera una divergencia con la EMA13, avisando de una importante subida.

Este es uno de los casos en los que el comportamiento humano no es simétrico (miedo/avaricia) y, en general, no sirve aplicarlo para grandes picos positivos que formen divergencias bajistas.


Si discrepas, si no entiendes algo, si estás de acuerdo, si tienes una idea, si te enfrentas a un problema ¡añade tu comentario!

martes, 10 de noviembre de 2009

Sistemas de trading. Episodio II: Optimización



Continuando con el episodio I; ahora que tenemos nuestro sistema de trading planteado, vamos a optimizarlo.

Para maximizar el rendimiento de un sistema deberemos ir por partes. Primero averiguaremos si el valor que hemos escogido (en nuestro caso, Telefónica) es el óptimo para este tipo de sistemas o hay algún otro que se adapta mejor por su propia naturaleza.

Así pues, corremos el test en cada uno de los valores del IBEX35 y vemos si hay alguno que destaca por el beneficio obtenido en las mismas condiciones que planteábamos para Telefónica.

Para ello, no hay más que ir recorriendo la lista del IBEX35 en la ventana de "Valores", asegurándose de que ProRealTime cargue los datos históricos desde 1999 si existieran (basta hacer zoom hacia afuera en el gráfico de precios para lograr esto).

Después de hacer este recorrido descubrimos que hay dos valores que destacan por encima de los demás. Uno es OHL y el otro es ACS. Ambos se comportan mejor que Telefónica. De hecho, Telefónica es el cuarto mejor con un beneficio de 3664€

Sin embargo, OHL le saca el mejor rendimiento a este sistema con 5849€.

Observando la curva de liquidez, vemos que el sistema es más noble en OHL, las pérdidas son más controladas y el beneficio final es superior. Atendiendo al gráfico de precios, podemos observar que OHL es un valor que oscila con mayor continuidad y menor brusquedad que Telefónica. Por lo tanto, nos olvidamos de Telefónica y, a partir de ahora, centraremos nuestros esfuerzos en OHL.

Hemos visto como, con una sencilla exploración del mercado, ya hemos mejorado enormemente nuestra eficiencia, centrándonos en un valor que se adapta mejor a nuestro sistema de trading.

Ahora es el momento de centrarnos en refinar los parámetros de nuestro sistema de trading. La idea es sustituir las constantes del sistema por variables.

En este sistema, las constantes más inmediatas son:

· El número de periodos de la media móvil del precio. Hasta ahora, 50.
· El parámetro de cálculo del RSI. Hasta ahora, 5.
· El umbral de RSI que consideramos como zona de sobreventa. Hasta ahora, 30.

Sustituimos estos valores en el código del ProBackTest por variables, que definiremos y a las que daremos un rango limitado.

Empezaremos por variar, a modo de ejemplo, los periodos considerados en el cálculo de la media móvil. Para ello, modificaremos el código, poniendo una variable en lugar de un número (hasta ahora, 50) en la definición de la media móvil:

Pincha en la imagen para verla al 100%

Como puedes ver en esta última imagen, pondremos una "n" en lugar del "50" en el código y añadiremos una nueva variable a la que llamaremos "n" en el programa, que aparecerá como "Periodos SMA" en la ventana del ProBacktest y que correrá entre 1 y 250, en saltos de 10 en 10.

Al "Aceptar", el programa se pondrá a calcular cuál es la media móvil que nos dará el máximo beneficio final.

Cuidado aquí, porque este cálculo se realiza por fuerza bruta.

Cuando se dice que un sistema de optimización funciona por fuerza bruta, significa que calcula absolutamente todas las combinaciones posibles y las ordena según resultados. Esto quiere decir que, si nos pasamos con el número de combinaciones, podemos sumir al ordenador en un cálculo demasiado largo o complejo, hasta el punto de dar la sensación de que se haya colgado. Por ello, es bueno no pasarse en el número de combinaciones y enfocar la optimización desde un punto de aproximaciones sucesivas.

Al terminar de calcular, ProRealTime nos presenta un "Informe de optimización" en el que nos desvela que, de todas las medias móviles contempladas, es la de 211 periodos, la que más jugo le saca a OHL en nuestro sistema, entregando un beneficio final de 13166€.

Vamos mejorando ¿verdad?

Ahora es el momento de incluir el resto de las variables en el juego, es decir, llamaremos "n" a los periodos de la media móvil, pero también llamaremos "r" a los periodos del RSI y "u" al umbral de sobreventa en el RSI y los sustituiremos en el código, añadiendo las correspondientes variables.

Ojo ahora, porque el número de combinaciones se dispara y debemos especificar rangos amplios en las variables, para poder encontrar la zona en la que se comportan mejor como equipo, pero también debemos comenzar dándoles un paso grande, para reducir mucho el número de combinaciones posibles y que el cálculo no se eternice. Nuestra intención es ver primero por dónde van los tiros y luego precisar hasta encontrar los valores exactos que combinan a las variables para dar el rendimiento máximo.

Así pues, ahora que ya sabemos que "n" va bien por la zona de 210, la ponemos a correr entre 200 y 220, con paso 5. A "r" (periodos del RSI), la haremos variar entre 1 y 20, con un paso de 1. La variable "u" (umbral de sobreventa en el RSI), recorrerá el intervalo entre 10 y 50 con un paso de 10.

Ponemos el ordenador a calcular y obtenemos un nuevo máximo de beneficio de 16.777€ en la combinación:

n = 205
r = 4
u = 30

Aunque en este ejemplo no ha sucedido, es posible que observásemos que "n" mostrase su óptimo en el extremo del intervalo (en este caso, en 220). Esto querría decir que el rango 200-220 ya no sería adecuado, pues no contendría el óptimo para "n".

Esto es perfectamente posible, pues el óptimo global no suele coincidir con el óptimo local. O, dicho de otro modo, es frecuente que, el óptimo de "n" esté en un determinado valor cuando la optimizamos por sí sola, sin contar con "r" y "u", y que este óptimo no coincida con el que se alcanza cuando se optimizan "n", "r" y "u" a la vez.

El beneficio obtenido por el óptimo del grupo será siempre mayor que el beneficio alcanzado al optimizar una sola variable. Por ello, no sirve optimizar primero una variable, luego otra y así sucesivamente. Hay que tantear el terreno con todas a la vez e ir precisando después.

Tras una serie de aproximaciones sucesivas, obtenemos los siguientes valores:

n = 204
r = 2
u = 24

Ahora es el momento de observar las entradas y salidas y buscar soluciones para los periodos en los que el sistema se comporta peor.

Si nos fijamos en el comportamiento de nuestro sistema, observamos que, como casi todos los sistemas caza-tendencias, flojea mucho en las fases laterales.

Para intentar contrarrestar este hecho, podemos añadir un indicador de tendencia y salir cuando éste nos avise de que la tendencia se pierde. En particular, en este caso utilizaremos el indicador ADX. Cuando éste sobrepase un tope, saldremos de la posición, aún cuando el precio no haya tropezado con su media móvil.

Hacemos una primera prueba con un ADX de 14 periodos y un tope de ADX de 50. Observamos inmediatamente que esto, por sí sólo, ya nos mejora ligeramente el beneficio.

Repetimos, tal y como hemos explicado, la operación de hacer variables estos dos parámetros del nuevo indicador. Les llamaremos "p" y "t".

Después de localizar con aproximaciones sucesivas cuáles son los valores óptimos de "p" y "t" por sí sólos, revisamos el resto de parámetros, dándoles de nuevo cierta libertad. Observamos una pequeña corrección en "u" que pasa a de valer 24 a 25.

Finalmente, llegamos a la siguiente combinación de variables:

n = 204
r = 2
u = 24
p = 9
t = 62

Esta combinación presenta un beneficio de 26.757€. Es decir, una rentabilidad de 1.238%, con tan sólo 15 operaciones en los últimos 10 años.

En resumen, nuestro código de ProRealTime quedaría como se muestra en la imagen. En la ventana de atrás se ve cómo quedaría el sistema de trading gráficamente.

Pincha en la imagen para verla al 100%

Hay infinidad de detalles que se pueden objetar, como por ejemplo, que hemos supuesto una comisión fija, que obviamente se queda obsoleta en cuanto el dinero crece. Esto no deja de ser una simulación teórica.

Sin embargo, lo que es incuestionable, es que ya tenemos un sistema que nos habría dado una buena rentabilidad en OHL si lo hubiéramos aplicado desde enero del 99.

Hasta ahora lo que hemos hecho ha sido:
  • Diseñar un sistema de trading sencillo.
  • Buscar un valor que se adapte naturalmente bien a ese sistema.
  • Hacer variables sus parámetros y optimizarlos.
  • Añadir alguna condición extra para mejorar el comportamiento en puntos críticos.
  • Re-optimizar los nuevos parámetros.
Son todos pasos básicos y tremendamente sencillos, que se pueden repetir una y otra vez. Sin embargo, es importante mantener la simplicidad del sistema pues, cuanto más se particulariza, menos flexible será el sistema y peor se adaptará al cambiante futuro, que es precisamente cuando queremos aplicarlo.

Que un sistema haya sido exitoso en el pasado no implica que lo sea en el futuro, pero esto es relativo. Cuanto más cercano el futuro más fiable será nuestro sistema. Ni la bolsa ni las empresas cambian radicalmente de la noche a la mañana. OHL seguirá comportándose de forma parecida a los últimos 10 años durante los próximos meses. Así pues, el último paso en el proceso de la optimización es:
  • Recalibrar los parámetros con el paso del tiempo para que el sistema siga teniendo validez.
Para dar por terminado el diseño de un sistema de trading, sería conveniente probarlo en distintas ventanas de tiempo. Hemos optimizado el sistema para un periodo fijo, pero es bueno ver cómo se comporta en intervalos más cortos y en diferentes momentos. Esto nos dará una mejor idea de la rentabilidad que podemos esperar de este sistema aplicado en un futuro, además de ayudar a refinar el conjunto de reglas.

Por último, decir que este sistema nos lo hemos ido inventando sobre la marcha, conforme escribíamos el artículo. Quisiéramos destacar que este sistema no es en absoluto brillante. Con un poco de interés y perseverancia se pueden conseguir sistemas muy superiores.

Desde Novatos Trading Club, esperamos que esta pequeña guía sobre cómo diseñar y optimizar un sistema de trading os haya sido de utilidad y deseamos que le saquéis provecho en forma de unos estupendos euros más en vuestras cuentas bancarias.


Si discrepas, si no entiendes algo, si estás de acuerdo, si tienes una idea, si te enfrentas a un problema ¡añade tu comentario!

Sistemas de trading. Episodio I: Diseño



Un sistema de trading es un conjunto de reglas claras que explicitan cuándo entrar en el mercado, con qué tamaño de posición, con qué stop de seguridad, en qué mercado y cuándo y cómo cerrar la posición.

Por ejemplo, un sistema de trading sencillo podría ser el siguiente:

Compraremos 300 acciones del Banco Santander cuando la media móvil de 30 periodos cruce a la de 50 periodos de abajo a arriba. Pondremos un stop loss justo por debajo de la media móvil de 50 periodos. Si el precio se mueve a favor, una vez alcanzado un avance del 10% se deshará la mitad de la posición y se continuará con el resto hasta que la media móvil rápida cruce a la lenta de arriba a abajo.

Últimamente, la sección "I+D+I" de Novatos Trading club se ha estado centrando en el desarrollo de sistemas de trading a través del backtesting.

El backtesting ("probar hacia a atrás") consiste en, dado un sistema de trading, probarlo en datos históricos y calcular qué beneficios o pérdidas se habrían alcanzado en un determinado periodo del pasado.

Hoy vamos a explicar cómo podemos utilizar el backtesting y ProRealTime para preparar un sistema de trading y depurarlo hasta conseguir un sistema ganador que podamos aplicar en el presente.

ProRealTime es un software de gráficos sencillo de utilizar y, a la vez, muy potente. Es el que empleamos habitualmente en Novatos Trading club para presentar nuestras operaciones. Este programa, que es completamente gratis para gráficos que no sean intradía en tiempo real, tiene un módulo llamado ProBacktest que facilita mucho la labor del backtesting.

Para conseguir un sistema que pueda dar pingües beneficios en el futuro, el primer paso es que los pudiera haber dado en el pasado. Esto no es garantía de nada, pero es un inmejorable punto de partida.

Empezaremos por inventarnos un sistema de trading. Lo mejor es que sea sencillito de todo. Una o dos reglas muy básicas, y luego, añadir detalles para refinar su comportamiento en los momentos en los que peor funcione.

Lo primero es decidir en qué marco vamos a operar. Podemos decantarnos por sólo posiciones largas en valores españoles operando con gráficos diarios. Podemos pensar en posiciones largas o cortas en futuros sobre materias primas en mercados americanos intradía. Podemos pensar en sólo posiciones cortas en CFD's sobre índices mundiales en plazos de semanas, etc.

Hay que definir qué mercado, qué marco temporal y qué tipo de posiciones abriremos.

Para nuestro ejemplo vamos a centrarnos sólo en posiciones largas, en valores de la bolsa española que formen parte del IBEX35 (Santander, Telefónica, Repsol, Técnicas reunidas, etc.). Nos moveremos con gráficos diarios.

Lo segundo que hay que establecer es cuál va a ser nuestra referencia para entrar y cuál para salir del mercado.

Nuestra idea es la de comprar primero para vender después a un precio mayor. Intentaremos cazar tendencias alcistas de varios días por lo que nos fijaremos en el precio y en algún indicador seguidor de tendencias para poder aguantar sobre ellas. Además, para las entradas atenderemos a las señales de algún oscilador.

Concretando, pondremos una media móvil simple para seguir las tendencias del precio y utilizaremos al RSI para capturar buenos puntos de entrada.

Cogeremos como valor de partida a Telefónica para nuestras pruebas. Tiene la ventaja de ser el valor más líquido del mercado español.

Así pues, nuestro sistema de trading de ejemplo queda como sigue:

Abriremos nuestra posición de 2000€ en Telefónica cuando el precio esté por encima de su media móvil simple de 50 periodos. Además el RSI de 5 periodos deberá estar en zona de sobreventa (menor de 30%).

No cerraremos la posición hasta que el precio cruce de arriba a abajo su media móvil de 50 periodos.

Por seguridad, mantendremos un stop loss que iremos actualizando cada pocos días por debajo de la media móvil de 50 periodos. Este stop nunca debería dispararse, puesto que la condición de salida está justo por encima.

La idea es programar esto en ProRealTime. Cuando lo tengamos, él nos dirá cuándo entrar y cuándo salir atendiendo a nuestras condiciones.

Se supone que cuando el ordenador nos recuerde que tenemos que entrar o salir del mercado, nosotros daremos a nuestro broker la orden correspondiente. Esto no quita que un día nos olvidemos de atender a la bolsa y haya un colapso en los precios. Nos alegraremos de tener una orden de stop de seguridad en el mercado que nos sacará de la posición sin nuestra intervención.

Para implementar nuestro sistema en ProRealTime, lo primero es crear un gráfico de Telefónica con su media móvil de 50 periodos y añadir un indicador RSI de 5 periodos. Esto nos facilitará mucho la programación y el seguimiento del backtesting.

Añadiremos un nuevo ProBacktest, que nombraremos como queramos.


Programaremos con el asistente o tecleando el código si lo conocemos (es muy sencillito y se aprende muy fácilmente).

Una vez definido el sistema tenemos que establecer las condiciones de la prueba. Pinchando en "Gestión del capital", fijamos el capital de partida en 2000€ y le ponemos un precio fijo de comisiones de 10€ por compra o venta.


También hay que especificar entre qué fechas queremos hacer el ensayo.

Para empezar, decidimos probar nuestro sistema sobre los últimos diez años de Telefónica. Esto es, desde el 1 de enero de 1999 hasta la fecha actual.

Ejecutamos el test ("Validar programa") y comprobamos nuestros resultados. Con este sistema, desde enero del 99, habríamos ganado 3664€.

El programa presenta un informe detallado de cómo nos habría ido, resaltando datos claves como cuál habría sido nuestra máxima pérdida o cuál es el porcentaje de operaciones ganadoras.

Encima de nuestro gráfico de Telefónica, añade una curva de liquidez y un histograma de posiciones que nos permiten saber de un vistazo cómo se habría comportado nuestro sistema.

Además, sobre el gráfico de precios, nos pinta flechas verdes o cruces rojas, indicando cuando abriríamos o cerraríamos nuestras posiciones.


Con esto ya hemos dado el primer paso para crear un sistema de trading. Hemos realizado un diseño preliminar y lo hemos probado en unas condiciones determinadas.

Es estupendo que el sistema arroje resultados positivos, pero no queremos sobrevivir simplemente, queremos ganar lo máximo posible.

Ha llegado la hora de depurar el sistema. Ha llegado la hora de la optimización. Pero esto... lo veremos en el próximo episodio.


Si discrepas, si no entiendes algo, si estás de acuerdo, si tienes una idea, si te enfrentas a un problema ¡añade tu comentario!

jueves, 5 de noviembre de 2009

¿Por qué no actuamos?



Muchos os preguntaréis qué está pasando, por qué no actuamos, cuál es el motivo que nos impide entrar en el mercado.

La respuesta es sencilla: No queremos estar en el mercado ahora.

Sabemos que parece un buen momento, pues nos gusta comprar al ver como terminan los rebotes y parece que esta es la situación actual. Sin embargo, en líneas generales, el mercado es ahora lateral y, probablemente, esté virando de alcista a bajista.

Como pequeños inversores, no nos hace daño apartarnos un poco mientras el mercado se decide y nos muestra el rumbo a seguir. Si manejásemos grandes cantidades de dinero, podríamos buscar con envites al mercado la dirección de menor resistencia; pero como nuestros movimientos pasan desapercibidos y no tienen repercusión apreciable en el precio, lo mejor será que lo averigüen otros mientras nosotros observamos desde la barrera.

A continuación, el aspecto del S&P500 y del VIX:



Si discrepas, si no entiendes algo, si estás de acuerdo, si tienes una idea, si te enfrentas a un problema ¡añade tu comentario!

domingo, 1 de noviembre de 2009

Gaps. Tipos y trucos. Episodio IV.



Los gaps mentirosos:

Por desgracia, los gaps mentirosos son los más habituales. Normalmente, fruto de intentos de manipulación en mercados estrechos o planos, estos gaps no llevan a ninguna parte, no crean tendencia y suele ser conveniente no intentar sacar beneficio de ellos.

Hay gaps que mienten mejor que otros. A los que mienten mal, se les caza por el volumen. Mejor desconfiar si a un gap no le acompaña un pico importante de volumen. Cuando el volumen correspondiente a un gap no destaca de forma sobresaliente, no suele compensar entrar. Es más, además de tener un volumen poco notable para corresponder a un gap, en días sucesivos el volumen vuelve inmediatamente a los niveles normales, lo que descubre que casi nadie tiene un interés especial en ese valor.

Con los gaps mentirosos la mejor estrategia es dejarlos pasar. Si descubrimos tarde que un gap nos ha engañado y que no es lo que creíamos, nuestro stop de seguridad saltará y nos llevaremos a casa una pérdida menor. Si vemos un gap y sospechamos que nos pueda estar mintiendo, lo mejor es no entrar o, si incialmente hemos picado, salir inmediatamente.

Los gaps de este tipo suelen tener poco recorrido y, la mayoría de las veces, se cierran rápidamente; aunque hay algunos que no se cierran en un plazo razonable como para esperar por él.

Aunque muchas veces surgen accidentalmente, muchas otras están creados a propósito para sacarle el dinero a los menos atentos. Así pues, si están específicamente pensados para darnos pérdidas ¿por qué íbamos a entrar?


Si discrepas, si no entiendes algo, si estás de acuerdo, si tienes una idea, si te enfrentas a un problema ¡añade tu comentario!

miércoles, 28 de octubre de 2009

Resultado de operaciones 28/X/2009



BVN: Tan pronto como llegó se fue. Nuestra condición de entrada se disparó en los primeros minutos de mercado. Desde ese momento, el valor no ha hecho más que caer.

Por supuesto, el stop de protección se disparó controlando las pérdidas.

No es que hayamos elegido mal el valor, pues todo el mercado se ha pegado un soberano batacazo. Aún así, estamos contentos, pues hemos hecho las cosas respetando nuestro sistema. En otra ocasión nos irá mejor económicamente. De eso estamos seguros.


Si discrepas, si no entiendes algo, si estás de acuerdo, si tienes una idea, si te enfrentas a un problema ¡añade tu comentario!

Gaps. Tipos y trucos. Episodio III.



Gaps de sprint final:

Los gaps de sprint final reciben este nombre por ser como el último esfuerzo de un atleta antes de cruzar la meta. La tendencia se acelera, abriendo un hueco, justo antes de terminar. Tras el gap, la tendencia se frena y vira con brusquedad, normalmente cerrando el gap.

Sabiendo que estos huecos suelen cerrarse, tras detectar un gap de sprint final, lo adecuado es entrar contra tendencia, poniendo un stop cercano al precio más extremo que se haya alcanzado a favor de tendencia después del gap.

Al virar, el precio marcará nuevos records cada día, deshaciendo la tendencia. Mientras esto siga así, vale la pena mantenerse dentro de la operación. El día que el movimiento que ha cerrado el gap titubee habrá llegado el momento de salir.

Si discrepas, si no entiendes algo, si estás de acuerdo, si tienes una idea, si te enfrentas a un problema ¡añade tu comentario!