¿Nos visitas desde USA? Entra a tu página Rankia.us.
Oscar Cagigas

Gestión del capital, ondas de Elliott y sistemas de trading

Monitorizando la cartera: Nuevo método muy exacto

Una de las cosas que me han resultado más complicadas a la hora de operar sistemas de trading es la supervisión de estos. En teoría no debería haber ningún problema: se cargan las operaciones en una hoja Excel y se sacan estadísticas.

Pero lo que realmente importa es la curva de capital, y eso no sale de las operaciones sino de acumular día a día el rendimiento de las distintas posiciones en cartera. Una operación puede terminar con una ganancia de 100 euros pero si ha tenido una excursión negativa de 6000 entonces puede haber dado problemas de garantías, acumulado drawdown (junto con otras), etc.

Fíjese en la operación de debajo en el Nasdaq. Aunque salió bien estuvo cerca de hacer saltar el stop.


Fuente: Onda4.com


Evidentemente si nos llevamos el resultado de esta operación a una hoja Excel con la intención de monitorizar una estrategia pues incorrectamente asumiremos que no produjo drawdown.


Bueno, la solución parece sencilla: hay que utilizar todo el histórico de la operación (barras diarias en este caso) y acumular las diferentes posiciones que se tengan. Pero esta solución, que en teoría es fácil resulta que se encuentra con el inconveniente de los distintos vencimientos de contratos. Cada vez que se cambia de un contrato a otro los sistemas salen diferentes en nuestro software de como se implementaron en la realidad. Incluso puede darse el caso de que una operación que se hizo a un determinado precio salga fuera de la barra una vez que el software hizo el ajuste hacia atrás (al introducir el nuevo vencimiento).

Debajo le muestro que nuestro corto en GAS NATURAL se abrió a 3.018 el pasado 13 de septiembre, en el contrato de Octubre. Pero durante la operación tuvimos que hacer roll-over. El precio ahora queda fuera de la barra.

 


Fuente: Onda4.com


Siempre que durante la vida de una operación tengamos que hacer un roll-over la monitorización va a ser complicada y los resultados no van a ser exactos al 100%. Pero aquí terminan las malas noticias, afortunadamente. Recientemente he trabajado en conseguir una supervisión lo más realista posible de mis sistemas y la cartera. Y he solucionado el problema de que las operaciones cambian en el software respecto de lo que se implementó en la realidad:

La solución es anotar las operaciones REALES en Excel y cargarlas en Amibroker como si fuera un sistema de trading que funciona por fechas. Eso va a incluir toda la vida de la operación y las operaciones que salgan son las buenas, las que hemos hecho, no las resultantes del cambio de contrato.


Según vaya pasando el tiempo y vengan nuevos vencimientos los precios se saldrán de la barra tal y como vemos en la página anterior. Eso lo he solucionado mirando si el precio de entrada está por encima del máximo o por debajo del mínimo de la nueva barra, y en ese caso forzando que el precio al que se abre la operación sea el de cierre. El resultado no es exacto, pero es la mejor aproximación que se me ha ocurrido. Hay que tener en cuenta que con el paso del tiempo los precios van a ir cambiando mucho. Pero la diferencia de cotizaciones entre el día de entrar y el de salir se va mantener porque así funciona el ajuste hacia atrás.


Debajo vemos la operación ajustada de forma que el nuevo precio al que se abrió el corto fue el cierre del día 13 de septiembre, a 3.12. El precio de salida no ha cambiado, pero según vayan viniendo nuevos vencimientos al final se saldrá de la barra y nos quedaremos con el cierre. Eso quiere decir que la operación se limitará a entrar y salir a cierre en los días exactos en los que se hizo en real. No es una mala aproximación teniendo en cuenta lo difícil que nos lo pone el cambio de contrato.

Gracias a esta aproximación ya podemos cargar nuestras operaciones desde el Excel y hacer que Amibroker genere una curva de capital muy aproximada porque va a operar los mismos mercados y en las mismas fechas que nuestra operativa real.


Esto lo vemos en la página siguiente, donde muestro el fichero CSV (separado por comas) resultante de nuestra operativa real y que va a cargar Amibroker. En realidad esto es el sistema de trading: que Amibroker incorpore estas operaciones como si vinieran de código interno.

 


Fuente: Onda4.com

 


De momento eso es lo que tenemos desde que hicimos la simplificación de la cartera a primeros de septiembre (se explica en el informe del 9 de septiembre). Solo tenemos una operación cerrada, en Gas Natural, y cuatro largos abiertos en Dólar de Nueva Zelanda, Ganado Vacuno, Franco Suizo y Bonos del Tesoro (T-Bond) a 30 años. Este es el fichero CSV que carga Amibroker.

Debajo se muestra nuestra compra reciente en los Bonos. La entrada es a 152.70 porque eso es lo que ha leído del fichero CSV. Nuestro precio REAL de entrada.

 


Fuente: Onda4.com


Y por fin la prueba de fuego: Comparar la curva de capital que sale de Amibroker de la que sale del intermediario (Interactive Brokers):

 

Fuente: Amibroker

Fuente: Interactive Brokers


Qué le parece? Sale bien, no?


De nuevo tengo que insistir en que no es exacto, no solamente por lo indicado anteriormente sino también porque amibroker está simulando en dólares todo el rato mientras que el intermediario está valorando en euros las ganancias y pérdidas diarias en dólares así que cada día aplica la conversión eurodólar con el cambio del día. Aún así no puedo negar que el resultado me deja muy satisfecho.

Y esto lo cambia todo… En cuanto tengamos histórico suficiente se pueden ver todos los ratios que salen de la curva de capital (p.e. Sharpe, RRR, etc) y comparar con los de diseño. El drawdown que salga también será muy real, y la volatilidad. De alguna manera se ha solucionado el tema de la monitorización de estrategias

Poco a poco se van logrando grandes cosas. La limitación no está en el software sino en la imaginación.


El código que convierte un fichero CSV en un sistema de trading Amibroker no es mío, está en el Knowlege Base de Amibroker:
 


No obstante, he tenido que modificarlo porque yo tengo el Excel en expañol y el fichero CSV que me genera no está separado por comas sino por punto y coma (;). Aparte he incluido la versión bajista (los cortos) y también el ajuste que he comentado para solucionar el problema de que los precios se salen de la barra. Se lo incluyo:


ANEXO: Código Amibroker. Generar un backtest de un fichero CSV con operaciones.