La lógica difusa permite desarrollar sistemas automáticos y estrategias de inversión con un lenguaje más cercano al lenguaje natural pudiendo automatizar muchos sistemas discrecionales
Las máquinas trabajan a mucha velocidad. Son capaces de hacer cálculos complejos en un instante y trabajar con grandes volúmenes de información que, a mano, serian inabordables u obtenidos días o meses después, carentes de utilidad. Su lenguaje son los números, las operaciones matemáticas.
Las personas están más cómodas con descripciones vagas, inexactas. Forma parte de nuestra naturaleza. “Ponte un poco más a la derecha si quieres salir en la foto” diría una persona. “Muévete 15 centímetros a la derecha si quieres salir en la foto” seria el lenguaje natural de una máquina.
El análisis técnico está íntimamente relacionado con operaciones matemáticas. Se utilizan indicadores, pendientes, líneas… operaciones matemáticas sobre precios, volúmenes… muy concretas. Las máquinas hacen esta tarea de forma sorprendentemente eficaz.
Pero… ¿qué ocurre cuando lo que queremos no representa números u operaciones concretas?
Muchos traders o inversores discrecionales lo son porque tienen serios problemas para automatizar sus estrategias de inversión. En sus cabezas los conceptos están muy claros pero su automatización es, a priori, compleja. Compleja para las máquinas, claro, pues no es su lenguaje natural.
LA LÓGICA DIFUSA
Aquí es donde entra en acción la lógica difusa. Con ella tratamos con magnitudes como: mucho, poco, demasiado, alto, bajo, estrecho, etc. No es el lenguaje con el que se sienten “cómodas” las máquinas. Es nuestro lenguaje. La lógica difusa permite que nos comuniquemos con las máquinas usando un lenguaje más humano.
Evidentemente, entre bastidores, sigue existiendo una componente matemática importante pero, en el escenario, la comunicación es más fluida, más natural.
Vamos a recurrir a un ejemplo extremadamente simple para ver como la lógica difusa puede aplicarse para la realización de estudios o el desarrollo de estrategias automáticas que están limitadas o no son posibles de otro modo.
Disponemos de un sistema que sabemos que es rentable pues lleva funcionando mucho tiempo con un alto porcentaje de aciertos, beneficios elevados, escaso draw down, etc. El sistema opera en gráficos de velas de 1 hora, solo cuando el volumen de la vela es muy grande. Compra si el precio está subiendo; vende si está bajando.
Con el análisis técnico tradicional, tenemos diversos problemas:
– ¿Cuánto es mucho volumen? Para el futuro del DAX, unos 25.000 contratos
– 25.000 contratos ahora pero… ¿hace 15 años? Entonces el volumen era menor. Mucho volumen eran unos 4.000 contratos.
– ¿Y para Telefónica? Para telefónica mucho volumen son unos 10.000.000 de contratos.
Observemos la Figura 1, que muestra el volumen del futuro del DAX en distintos años, en compresión de 1 hora. La línea punteada de color morado representa 25.000 contratos. Aunque la estrategia sabemos que funciona también en el año 2000, con 25.000 contratos por hora no operaría nunca.
Obtener estadísticas de este sistema tan simple de exponer en lenguaje natural, es complicado. Para un mismo gráfico, la condición con la que se opera no es una magnitud concreta. Habría que definir una tabla en la que para cada rango de fechas se indique a partir de cuantos contratos consideramos que son muchos. Se puede automatizar pero el trabajo manual previo es considerable.
Si queremos hacer un escáner para buscar valores donde la estrategia funcione bien en el pasado para invertir en ellos, el trabajo previo se multiplica. Para cada valor a estudiar habría que crear la tabla antes mencionada.
Y si la estrategia tiene más condiciones “difusas”… tendremos que seguir operando discrecionalmente, con unos pocos valores, que es lo que podemos manejar.
A partir de ahora vamos a entrar en la parte matemática que permite utilizar lógica difusa para resolver problemas como el que acabamos de ver. El desarrollo se puede hacer de diversas maneras. Aquí expondremos una bastante accesible.
CÓMO CALCULAR MAGNITUDES USANDO LÓGICA DIFUSA
¿Cómo puede saber una máquina lo que es mucho sin que nosotros se lo digamos? Con un estudio previo. Una forma muy útil de clasificar datos es por medio de percentiles. Su descripción formal nos dice que se trata del valor del elemento que divide una serie de datos en cien grupos de igual valor o en intervalos iguales.
El percentil 50 es aquel que divide nuestros datos en dos grupos iguales. Si disponemos de 30 volúmenes, el percentil 50 será aquel valor para el que 15 elementos tienen menor volumen y otros 15, mayor. Es importante resaltar que el percentil 50 y la media son distintos. En el caso anterior, si el mayor volumen lo multiplicamos por 10, el percentil 50 no cambia (el valor de volumen que separa los 15 elementos menores de los otros 15 es el mismo) mientras que la media sí que habrá crecido.
En la Figura 2 podemos observar la diferencia de volumen entre los distintos percentiles de diciembre de 2015 (futuro del DAX en compresión de 1 hora).
Podemos apreciar que hay un pequeño porcentaje de volúmenes que son extremadamente altos. Estos suelen copar la parte final, entre un 3% y un 5%. Al ser valores extremos no son representativos.
La Figura 3 muestra los valores absolutos de los percentiles. Aquí se aprecia como en la parte final la pendiente es más pronunciada.
Si eliminamos esa parte correspondiente a valores extremos y nos fijamos en el resto del gráfico vemos que la pendiente es relativamente homogénea. Podemos decir sin miedo a equivocarnos que el percentil 80…90 es un valor alto para el volumen: El 10…20% de los volúmenes más altos están a partir de dicho valor.
El cálculo de percentiles es una operación que puede hacer una máquina sin mayor problema. Si para el 1 de enero de 2015 obtenemos los percentiles del mes anterior (o de n días anteriores) disponemos de un método para poder determinar qué valor de volumen considerar como alto para dicho mes de enero y hacer que nuestro sistema opere en función de dicho valor. Es decir, no vamos a utilizar un valor concreto para el “volumen alto” sino que en cada momento se obtiene ese valor a través de un cálculo sobre un histórico previo cercano.
Los valores extremos se pueden detectar con variables estadísticas (varianza…) para centrarnos solo en los que realmente nos interesan, los que son representativos. De este modo no es necesario usar un 80% fijo, por ejemplo. Podemos buscar el punto de inflexión donde comienzan los datos extremos, digamos el 97%, y usar como valor alto un 10% menos, el 87%. Si en otra fecha el punto de inflexión está en 95%, usaríamos el 85% para nuestro “volumen alto”.
Al igual que cuando se optimiza un sistema se buscan los mejores parámetros para el mismo, con la lógica difusa, el porcentaje a usar para mucho, poco, muchísimo… es elección personal y puede ajustarse como un parámetro más del sistema en la optimización.
La potencia y flexibilidad que ofrece la lógica difusa para evaluar estrategias y buscar activos donde invertir es motivo más que suficiente para plantearse invertir el tiempo de desarrollo que requiere.
ESCÁNER PARA ACTIVAR SISTEMAS DE UNA CARTERA
Tenemos un conjunto de 10 sistemas con los que operamos normalmente. Los conocemos muy bien pues, con pequeños ajustes, son los sistemas que hemos usado los últimos años en nuestra cartera. Sabemos, por ejemplo, que hay algunos de ellos que funcionan muy bien cuando la volatilidad es alta y, cuando un activo donde el sistema está operando pierde volatilidad, cerramos posiciones y dejamos de usar el sistema en ese activo hasta nuevo aviso.
Queremos que nuestra cartera esté compuesta por unos 15 activos seleccionados con distintos criterios para diversificar. También evitamos el uso excesivo de un mismo sistema.
Nuestro día a día sin la lógica difusa viene a ser el siguiente:
Para cada sistema con el que tenemos una operación abierta, comprobamos que el activo está en sintonía con las características con las que sabemos que funciona bien el sistema. Si, por ejemplo, el sistema funciona bien como hemos comentado antes, con alta volatilidad, comprobamos que el activo sigue teniendo mucha volatilidad. Si no es así, se cierra la operación o esperamos a que el sistema cierre y lo desactivamos.
Cuando la cartera pierde posiciones abiertas, buscamos otros activos donde invertir. Seleccionamos sistemas que no estemos usando en la cartera (o que tengan poco uso para evitar sobreexponernos) y buscamos activos que estén en un buen momento para operar sobre ellos con estos sistemas.
Llevar a cabo las comprobaciones anteriores obliga a realizar mucho trabajo manual y el coste en tiempo es elevado. El conjunto de activos candidatos para abrir posiciones abiertas con los distintos sistemas puede ser muy grande y tendría que limitarse a unos pocos activos si no podemos automatizarlo. Con la lógica difusa puede hacer el trabajo la máquina y nosotros dedicarnos a supervisar los resultados.