Protocolo para la evaluación de sistemas
 
 

Protocolo para la evaluación de sistemas

 
Agarcía - 25 Jul 2005
0 comentarios
 
Diseñar un protocolo sencillo para determinar las "bondades" de nuestro sistema de trading puede llegar a convertirse en una tarea ardua y controvertida. Sobre todo si nuestra pretensión es evaluar con objetividad sistemas de muy diversa índole (tendenciales, antitendenciales, de reconocimiento de patrones...).


En el presente artículo intentaré ofrecer algunas pistas a tener en cuenta para su elaboración, partiendo de los datos que habitualmente manejo.

(1) Análisis de prueba interna


Aquí parto de una idea general: Cuanto mayor es el histórico empleado menores son las posibilidades de que en un proceso de optimización (No exhaustivo, claro. Las optimizaciones completas sólo sirven para aumentar varios grados la temperatura de la CPU y para perder dinero) los valores de los parámetros se "peguen" (overfitt) por completo a la curva de precios. Suelo emplear históricos de 7 a 10 años (en barras de 30, 35, 45 y 60 minutos) y, como norma general, no más de 200 ciclos por parámetro.

En este primer análisis exijo como mínimo:


  • ROE > 11% anual.
  • DD máximo inferior a 1/5 de la ganancia total (y a 1/3 del capital inicial).
  • Ratio > 1
  • Simetría: Índice Largo/corto: Próximo a 1.
  • Una desviación típica de resultados inferior a 1/100 de la ganancia total.
  • Unos resultados positivos, consistentes y robustos año a año. (Por ejemplo, si un sistema obtiene en 7 años consecutivos un resultado mínimo de 4000$y máximo de 10.000$ para mi es mejor que otro que obtenga un resultado mínimo de -10.000$y máximo de 50.000$. No se trata de una cuestión baladí, es un factor psicológico importantísimo asegurarnos de que nuestro sistema no pierde ningún año.

(2) Análisis paramétrico de congruencia:


Se trata de analizar el comportamiento de los parámetros ante pequeñas variaciones de los valores empleados en la optimización.  En general, un sistema es robusto si, al ir aumentando o disminuyendo sucesivamente los valores de los parámetros, las variaciones de resultados son proporcionales y continuas. 


Por ejemplo, supongamos que mi sistema emplea como parámetro el período del RSI. Tras optimizarlo obtengo:


RSI(13) = 3.000$

RSI(14) = 3.200$

RSI(15) = 3450$

RSI(16) = 3.150$

RSI(17) = 2900$...


En este caso queda claro que las variaciones en los resultados son consistentes. Supongamos ahora que obtengo:


RSI(13) = -2500$

RSI(14) = 7.000$

RSI(15) = 190$

RSI(16) = 3900$

RSI(17) = -5000$...


En este segundo caso, el sistema es completamente inútil. Los valores paramétricos obtenidos tras una optimización no tienen ningún potencial predictivo.


Cuando el número de parámetros es alto (Por cierto, cosa poco recomendable. Volvemos nuevamente a la "belleza de lo simple"), las tablas de correlaciones entre variables paramétricas suelen ser mastodónticas y, en tal caso, es conveniente recurrir a los Mapas de Optimización. (En otro artículo explicaré su funcionamiento e indicaré algún software para este propósito).


(3) Análisis de prueba externa.


Es, sin duda, el más importante. Se trata de ver como se comportan los valores paramétricos seleccionados en periodos del histórico sin optimizar. Sobre esta cuestión, de la que hablaré detenidamente en próximas aportaciones, deberemos ser extremadamente rigurosos:


  • Reservaremos al menos 1/3 del histórico "no contaminado" para la prueba externa.
  • Elegiremos varios "cortes", preferentemente aleatorios, que contengan: momentos alcistas, bajistas y laterales del mercado. (Muchos traders suelen emplear una táctica poco recomendable: Optimizar dos años completos y ver que pasa en el siguiente. No me gusta; para empezar, los efectos estacionales y de principio y fin de año pueden interferir en la operativa. Lo único que no interfiere es lo no predecible. Y lo no predecible es, por definición, aleatorio).
  • Anotaremos cuidadosamente los resultados, prestando especial atención al DD máximo de cada periodo.
  • Con el listado completo de todos los "cortes" realizaremos una simulación de Montecarlo completa. Empleando, claro está, un software específico y fiable para este propósito.
  • Calcularemos el solapamiento o "nivel de acople", por "cortes" y total.

Una vez hecho esto, y si el sistema siguiese resultando consistente (cosa poco frecuente...) pasaremos a la última prueba:  


(4) Cuarentena.


Muchos se saltan este paso -craso error, a mi juicio- por considerar que los resultados de prueba externa ya constituyen un estimador suficientemente preciso del funcionamiento "real" del sistema. El problema es que lo verdaderamente real es el insondable arcano de las semanas y meses por venir. Reconozco que poner un sistema, aparentemente robusto, en cuarentena es cuando menos tedioso, pero considero que su observación en el día a día constituye la única garantía efectiva de lo que verdaderamente hará. 


Si ya estamos operando con varios sistemas, añadiremos el nuevo sistema a nuestra cesta sistemática y lo dejaremos correr durante meses (mínimo 6) poniéndolo, literalmente, a competir en tiempo real con los sistemas que ya tenemos. Ni que decir tiene: Idénticas comisiones y deslizamientos que las aplicadas a los sistemas que tengamos operando en el mismo mercado. 


... Y hemos llegado al final, seguramente exhaustos y con la lengua fuera. Si todo ha ido bien (cosa bastante improbable, por cierto), ya sólo nos queda ligarlo a la operativa con nuestro broker, cruzar los dedos y volver a repetir el mismo proceso con en nuevo sistema que por entonces ya tendremos, sin duda, en mente.


Sí, señor... El mito de Sísifo arrastrando la piedra una y mil veces por la misma pendiente es la mejor analogía que ahora se me ocurre.  

 

Añadir comentario

 
Modificado por TradingSys (AndG) - 25 Jul 2005
 
 

Secciones

 
 

Entradas recientes

 
 

Enlaces