Home Blai5 TCM TCM: Cómo Se Diseñó

TCM: Cómo Diseñar Un Indicador Técnico [con PRT]

E-mail Imprimir PDF

Es hasta cierto punto lógico que todos aquellos que desconozcan el procedimiento de diseño de un indicador les pueda parecer una tarea inasumible por compleja cuando, como cualquier otro proceso de esas mismas características, sigue unas pautas perfectamente entendibles por cualquiera que tenga una mínima base matemática y un cierto amor por el orden.

En septiembre de 2007, comprobaba con algo de sorpresa que no existía en Internet (o yo no supe encontrarlo) ningún documento donde se explicase, paso a paso y con voluntad didáctica, alguna técnica de trabajo para el diseño de un indicador técnico desde cero.

Animado por algunos colegas tuve la osadía de intentarlo en el foro El Nuevo Parquet. Con ello pretendía demostrar que incluso el error forma parte del propio proceso de diseño, aunque afortunadamente todo funcionó bastante bien de principio a fin.

He pensado que podría ser útil reproducirlo aquí para que, cuando alguien sienta curiosidad por este tema tenga al menos una referencia, ni que sea para buscar una manera alternativa de trabajar. Con esa voluntad de rellenar ese hueco, incluyo este artículo y espero que sea útil. La mayor parte del texto está extraido literalmente de aquel hilo.

Definimos el desafío en el diseño de alguna herramienta que permitiera identificar y marcar el denominado Triple Cruce de la Muerte utilizando las herramientas de diseño y programación de ProRealTime. El Triple Cruce de la Muerte (TCM) es una interesante y muy potente señal de trading definida por Scot Lowry en su libro "The Magic of Moving Averages" y que se basa en el cruce de tres medias exponenciales de periodo 4, 18 y 40. La convergencia de las 3 medias ocasionalmente precede al inicio de un movimiento potencialmente interesante.

Para empezar recabamos en grupo información técnica sobre esta señal por si existían variantes o características que fuera oportuno contemplar. Al no descubrir variantes técnicas (y descartando complicarnos con aspectos como el Delta Phenomenon), iniciamos el proceso de diseño desde cero.

FASE 1: PLANTEAMIENTO DEL PROBLEMA

Antes de nada, me gustaría mostraros un poco mi forma de trabajo, que no diré yo que sea la mejor, ni siquiera la única, pero es UNA forma de trabajo, la que yo utilizo y que, quizás, pueda servir de orientación.

Después de documentarme, empiezo por describir el problema de la manera más escueta y sencilla que puedo. En este caso lo resumiría así: "Necesito una herramienta capaz de detectar los cruces de tres medias exponenciales de 4, 18 y 40, si puede ser antes de que se produzcan, como alerta de trading. Sería interesante poder escanear todo un mercado para identificar los valores que estén próximos a producir el TCM y así hacer un seguimiento y posible entrada".

Si empiezo por el final, diría claramente que voy a acabar necesitando un ProScreener (PS) o robot pero, ¿necesitaré antes un indicador? Bueno, si se cumple la "condición espartana" no, pero en principio parece difícil.

Me explicaré, la que yo llamo "condición espartana" en programación es aquella que con una simple orden resuelve el problema. O sea, una línea de código y ya está. Desgraciadamente, eso sucede muy pocas veces. De hecho, casi nunca...

Veamos qué decía aquella definición que encontramos en documentación:

"el cruce de medias exponenciales de 4, 18 y 40"

Pues venga, será TCM cuando las tres medias exponenciales se crucen, o sea, tengan el mismo valor:

ME(4) = ME(18) = ME(40)

Si programamos un PS que haga eso exactamente, tal como este:

y si lo lanzamos sobre un gran mercado como el NYSE o el NASDAQ nos encontraremos con esto:

Ningún resultado. La razón está clara, la "condición espartana" exige que las tres medias se crucen en un mismo punto, y eso es realmente muy improbable. En un caso que podría servir de ejemplo diríamos que, por ahí donde tengo la flecha, el TCM parece bastante claro (y también sus efectos):

Sin embargo, si nos acercamos, la imagen que obtenemos es la lógica: los cruces no son nunca simultáneos sino sucesivos.

Así pues, encaremos el problema con paciencia y como marcan los cánones: de lo más simple a lo más complejo.

Yo siempre me tomo los desarrollos como si de una escalera se tratase. Una escalera no es más que una sucesión de peldaños, aunque sólo me preocupo del más inmediato, el resto no me interesa ni me inquieta. Paso a paso, escalón a escalón, de lo más simple a lo más complejo. (Pido perdón a los más preparados y con más experiencia en matemáticas o programación a los que, seguramente, les parecerá todo esto demasiado parsimonioso, pero resulta imprescindible para que el resto puedan entender y seguir el proceso completo. Gracias por la paciencia).

Así que empezaremos por fijar nuestra atención en dos medias exponenciales sobre un gráfico e intentaremos descubrir qué información podemos extraer de ellas simplemente por su trazado.

Pues, para no hacerlo largo, como lo que nos interesa es la relación entre ambas, diremos que, podemos observar que se juntan, que se cruzan y que se separan. Pero esto, que son apreciaciones, ¿lo podemos expresar matemáticamente? Si es que sí, tenemos algo, si no, no nos sirve. La respuesta es que sí, y de una manera bastante sencilla como todos habréis deducido ya hace rato: por diferencia. Si restamos del valor de la una la otra, esa diferencia irá decreciendo si se juntan, irá creciendo si se separan y será cero cuando se crucen.

Ya imagino que la cosa era muy obvia, pero vamos a ver si gráficamente funciona. Pulsaremos en el botón Indicador/Backtest, luego en Nuevo Indicador y escribiremos el siguiente código:

en el que definimos una línea de valor constante (cero), una media lenta y una rápida, calculamos la diferencia entre ambas y representamos gráficamente sólo esa diferencia. El trazado de la curva de nuestro primer indicador no es difícil de interpretar, los cruces con la línea cero representan los cruces entre medias, cuando la curva se aproxima a cero las medias se estrechan y cuando se alejan, se ensanchan.

¿Y de qué nos sirve todo esto? Pues nos ayuda a establecer matemáticamente cuándo las medias están "próximas". El problema es que "próximo" es (de nuevo) una apreciación subjetiva que, matemáticamente, no quiere decir nada. Pero, si en el caso de este ejemplo concreto considerásemos "próximo" cualquier valor de la curva TCM01 entre -0.5 y +0.5, ¿no os parece que empezaríamos a caminar en la buena dirección?

 

FASE 2: EVOLUCIONAR LOS INDICADORES PARA IR RESOLVIENDO PROBLEMAS

Aquí viene un pequeño primer obstáculo a resolver: esa banda de valores no es estándar, sino que hay que calcularla en cada caso. Igual queda más claro si vemos gráficamente. Si, por ejemplo, la dejamos entre 0.5 y -0.5, la zona acotada no es la misma para este valor (prácticamente siempre dentro de la banda):

que para este otro (precticamente nunca):

Imagino que para todos queda claro que la diferencia está en que el precio del segundo es 50 veces mayor que el del primero y que hemos de conseguir que la amplitud de la "banda" sea proporcional. Eso exige que sea calculada en cada caso para que sea válida para todos. Así que vamos a mejorar nuestro indicador, añadiendo esa característica:

El truco es sencillo, calculamos un valor proporcional al precio y se lo aplicamos por encima y por debajo de cero. Con ello conseguimos que, en todos los casos, sólo se considere las medias "próximas" cuando su separación sea igual o inferior a 0.5% de su precio.

Eso nos da una imagen de bandas que se ensanchan cuando el precio aumenta o se estrechan cuando disminuye, cosa que no molesta en absoluto. Y eso pasa igual para las que tienen un precio superior a los 500 $ o cincuenta veces inferior. Si te fijas, en ambos casos se mantiene la proporcionalidad de la banda y la situación de medias juntas viene a ser equivalente en ambos casos:

Y, ahora que sabemos que ya nos sirve para todos, miremos uno cualquiera en detalle para asegurarnos que marca exactamente lo que nos interesa:

¿Se ve? Los tránsitos entre ambas líneas (roja y azul) en todos los casos corresponden a acercamientos de las medias, generalmente situaciones inmediatamente anteriores o posteriores a cortes o toques de las medias.

Bien, pues ahora que tenemos un sistema para acotarlas y restringirlas (podemos hacerlo más estrechando las bandas simplemente disminuyendo el factor VB), vamos a transformar eso en señal. Para ello tomaremos el indicador y lo cambiaremos de nombre, llamándolo TCM02 y cambiaremos algo de su código.

Se puede comprobar en el código como hemos prescindido de algunas cosas, porque ahora ya no nos interesa la curva, sino simplemente identificar los lugares donde se produce acercamiento (y da señal) de los que no, en que no da señal. (En este caso le hemos dado color rojo a la señal del indicador TCM2 y lo configuramos como Histograma). Mostraremos los dos para que se vea la correlación.

Si sólo estuviéramos hablando de dos medias, la cosa estaría prácticamente resuelta, pero nos las vemos con tres, así que, una vez solucionado un bloque del problema, afrontamos el siguiente: ¿cómo nos lo montamos ahora con tres medias?

FASE 3: DE DOS A TRES MEDIAS Y CONCLUSIÓN

Pues ahí las tenemos las tres. Teníamos ya en azul la ME40, en rojo la ME18 y le acabamos de incorporar la ME4 en verde.

La estrategia (para este proyecto concreto) será la misma y nos inventaremos un método "imaginativo" para solventar el problema. Lo único que deberemos hacer es identificar la media de valor más alto y la de más bajo, obviar la intermedia y ajustar el factor de bandas de señal. Para no hacerlo interminable, me salto los pasos intermedios y pongo el código del indicador modificado, que llamaremos TCM03, y que trabajará con 3 medias como si fueran dos:

Por pura lógica, como de las tres medias siempre tomamos las dos más externas, JAMÁS se producirán cortes, por lo que la curva SIEMPRE tendrá un valor mayor que cero, y eso tampoco nos viene mal. Ahí tienes comparadas la versión de dos medias con la de tres y sus respectivas curvas.

Como es lógico, ya no necesitamos dos líneas para establecer la banda de valores de estrechamiento, y con una (la azul de TCM03) nos sobra, estableciendo cualquier valor inferior a VB como "señal" de estrechamiento, en esta ocasión ya DE LAS TRES MEDIAS. Lo que sí hemos de cambiar es el valor del factor VB, pues al trabajar con tres medias, la amplitud de sus movimientos se magnifica. En las pruebas que he estado haciendo, valores entre 1/60 y 1/90 del precio del cierre parecen funcionar bien.

Como en la anterior ocasión, a partir de este indicador, generamos otro (ya el último) con nombre TCM04, que, simplemente, convierte en señal las áreas del gráfico de nuestro interés.

Y esta es la traducción visual en señales de las zonas de convergencia de las tres medias.

Por supuesto la única razón para todo esto es pasar este código a un ProScreener al que, simplemente le diremos, "cuando encuentres esa señal que llevamos rato persiguiendo a través de gráficos e indicadores, preséntanos el valor en nuestra lista". Los indicadores, código aparte, ya no sirven. Por fin, acaba teniendo esta pinta:

Y ya no mareo más, que hasta yo mismo me he producido dolor de cabeza con tanto rollo. Ahora escribiré el código final para que lo podáis copiar y pegar en la correspondiente ventana de creación de un ProScreener. Copiais, pegais, le dais nombre que para mí es TCM_ENP (Triple Cruce de la Muerte - versión En Nuevo Parquet), dais al botón de Validar programa y a aplicarlo sobre el mercado y periodicidad temporal que queráis.

Si, por ejemplo, queréis cortar más los resultados, viendo las zonas de medias más apretadas, en la instrucción "VB=close/90" podéis probar con valores de 100 o superiores y si quereis que sea menos restrictivo, podeis bajar hasta 1/60.

Si te apetece bajarte el código para pegarlo directamente en la ventana de Programación de ProScreener, sólo tienes que [si no lo estás] darte de alta como usuario registrado en este web y hacer clic en este enlace, con lo que accederás a la última versión del código del ProScreener.

En fin, corto y cierro. Espero que todo esto haya sido de alguna utilidad para alguien. Si a alguien le apetece mejorarlo, completarlo, modificarlo o crear otro completamente diferente, pues estupendo. Ojalá que de todo eso acabemos disfrutando de una herramienta mejor.

Así a bote pronto esto es lo que se me ha ocurrido a mí para construir un PS para detectar anticipadamente esta señal de trading y perdón por la desmesurada extensión.

Un saludo

PD.- ¿Alguien tiene una aspirina? :-)


Última actualización el Sábado, 08 de Enero de 2011 11:15  
Banner

Buscar

Herramientas Derivadas


Creative Commons License Todos mis desarrollos están bajo licencia de Creative Commons | Las informaciones aquí ofrecidas o las generadas por cualquiera de mis indicadores en ningún caso deben tomarse como una invitación o recomendación de compra o venda de valor alguno. Mis desarrollos son siempre puramente experimentales e informativos.


No Olvides Visitar: ProRealTime.com | IdeasdeTrading.com | Supperia.com | VisualChart.com | LibrosBolsa.com | X-Trader.net | Aguila Roja | Bolsa.com | TradingSys | TraderNinja |