¿Es posible aprender de la Naturaleza para anticipar movimientos bursátiles?. Hace poco lei un comentario sobre la naturaleza predecible del comportamiento de bandadas de pájaros mediante algoritmos matemáticos.
Parece ser que las bandadas de estorninos o de otras muchas aves, se mueven al unísono porque cada pájaro imita la dirección de los 7 pájaros adyacentes. De ese modo crean formas vivas, oscilantes, pequeños ovnis siempre cambiantes, a veces incluso amenazantes, como se ve en este vídeo:
Pues bien, ese movimiento característico es posible imitarlo en una simulación por ordenador con algoritmos muy sencillos.
Evidentemente la similitud con las siempre volubles, caprichosas y amenazantes bandadas de acciones es más que evidente.
Inspirado por este comportamiento, he intentado reproducir de un modo simplificado un algoritmo, desarrollado en Amibroker, que nos permita elegir las acciones que se mueven al unísono.
En un conjunto de acciones, las acciones líderes son aquellas que se mueven con más velocidad que las demás, bien al alza o a la baja. Si nosotros entramos en el bloque de acciones que empuja hacia arriba la bandada, y seguimos entrando y saliendo sistemáticamente en las acciones que más tiran hacia arriba (o hacia abajo) del grupo, conseguiremos estar siempre en la dirección correcta, siguiendo a la cabeza de la bandada, o a la cola, si nos ponemos cortos. En teoría, claro.
En Amibroker este algoritmo se puede simular mediante las órdenes de tipo rotacional: se compran un bloque de acciones, y se rotan cada cierto tiempo, vendiendo las peores y comprando nuevas.
El comando es:
EnableRotationalTrading() ;
Además hay que indicar en base a qué criterio elegimos las acciones. En este caso, elegiremos las que más han subido o bajado (Rate Of Change) en los últimos 15 días, rotándolas los lunes o martes:
VLunes=IIf(DayOfWeek()==1 OR (DayOfWeek()==2 AND Ref(DayOfWeek(),-1)!=1),1,0); //es lunes o es (Martes-y-ayer-fiesta)score=ROC(C,15);PositionScore= IIf(Vlunes,score,scoreNoRotate);
Con esta sencilla formula, el sistema rota las acciones semanalmente. Usaremos las acciones del índice SP 500, comprando 3 cada vez, y haciendo la compra o la venta al día siguiente de la señal, en apertura. Aplicamos las comisiones de un broker típico, y deslizamientos cero.
Sin embargo, analizando con cuidado los resultados, vemos que el problema está en los momentos de alta volatilidad. Es como si la bandada de acciones se dispersara en tiempos revueltos, haciendo inútil seguir a los pájaros más rápidos.
Vamos a aplicar por tanto un filtro muy sencillo. Calcularemos la volatilidad como el ATR del indice SP500. Cuando supere el nivel 18, que es indicador de volatilidad elevada, pasaremos todo el capital a liquidez.
SetForeign(«$spx»);VolatilidadOK = IIf( Ref( ATR( 15 ), –1 ) > 18, 1, 0 );//Desactiva rotacion acciones si alta volat.
RestorePriceArrays();
Los resultados así mejoran espectacularmente:
El beneficio anual sube hasta el 21%, y su peor DD es tan sólo del 20.2%.
Además, el sistema solo está expuesto un 37% del tiempo. Pasa mucho tiempo en liquidez; por ejemplo casi todo el año 2008.
El RAR representa el resultado durante el tiempo invertido, que es un 57%. Y el resto del tiempo, más «alocado» sería perfecto para utilizar el capital en inversiones seguras.
Así aparece el gráfico de la equity:
Usando 100.000 doláres de capital inicial, en menos de 5 años se llega a 260.000.
Este tipo de sistemas rotacionales suelen ser bastante estables. Son sistemas que no usan Stop loss, salvo que usemos filtros, y que no tienen órdenes de compra o de venta: solo rotan, siguiendo la dirección de la cabeza y de la cola de la bandada.
El uso adicional de filtros en sistemas como éste es recomendable. Todos los sistemas tienen momentos que operan muy mal. Es preferible evitar esos regímenes bursátiles adversos, que retocar demasiado nuestros sistemas, con el riesgo que conlleva de sobreoptimización.
Esta podría ser una buena idea de partida para usar en el complejo mundo de la inversión sistemática.
Slow-Inver
[hr]Unos artículos relacionados que quizá te interesen:
En mi opinion los draw downs de un sistema así serian en algun momento de los proximos 5 -10 años demasiado duros.
Saludos
Bueno, es difícil de decir. ¿cuánto es un DD duro? Un 20% es bastante, pero también depende de tu tolerancia al riesgo.
Por otra parte, en 5 o 10 años pueden pasar muchas cosas. Y los DD tienden a ser mayores conforme pasa eltiempo.
Pero ten en cuanta que el sistema sólo opera en condiciones de volatilidad muy baja, lo que nos quita mucho riesgo de entrar en pérdidas importantes.
En cualquier caso, el sistema es una idea de partida, siempre se puede mejorar..
Un saludo!
Bueno, es difícil de decir. ¿cuánto es un DD duro? Un 20% es bastante, pero también depende de tu tolerancia al riesgo.
Por otra parte, en 5 o 10 años pueden pasar muchas cosas. Y los DD tienden a ser mayores conforme pasa eltiempo.
Pero ten en cuanta que el sistema sólo opera en condiciones de volatilidad muy baja, lo que nos quita mucho riesgo de entrar en pérdidas importantes.
En cualquier caso, el sistema es una idea de partida, siempre se puede mejorar..
Un saludo!
Muy interesante yo utilizo uno similar rotando de forma mensual.
Saludos.
Ah, perfecto!
Y que tal te va, Bolsajunior.. ¿obtienes ganancias?
Un saludo
Slow-inver