A
todos aquellos que usan sistemas de trading la historia que actualmente
les voy a contar les será bastante familiar. Cuando comenzamos
a interesarnos por el mundo de los sistemas, comenzamos a programar
nuestras primeras ideas, a probarlas, optimizarlas, analizarlas,
.... empezamos a descubrir un mundo totalmente nuevo para nosotros
y realmente, en un principio, nos encontramos como bebes en pañales,
con un sinfín de cosas por aprender.
Lo
más común es comenzar a probar sistemas de libre
distribución, del tipo de los que AGM ofrece en su página
o de los que algunos amables traders ponen a nuestra disposición.
Tras unas pocas horas de optimización hemos conseguido
el sistema millonario que nos retirará de trabajar para
el resto de la vida. Ya no tendremos que seguir soportando a ese
plasta de jefe y podré llevar a los niños a Disneyworld.
Las estadísticas de nuestra optimización lo dicen
y ese sistema es una máquina de hacer dinero.
Tras
convencer a nuestra familia para comenzar a operar con "la
máquina de hacer dinero", empezamos no sin miedo,
a utilizar las señales de compra/venta que el sistema genera
y al cabo del tiempo (normalmente poco tiempo), nos damos cuenta
de que nuestros resultados no se parecen en nada a lo que había
conseguido tras mi optimización, las rachas de pérdidas
son extraordinariamente más grandes que las esperadas y
nos envuelve un sentimiento de frustración que acaba por
hacernos parar la operativa para recapacitar sobre lo que hemos
hecho mal y buscar soluciones.
Esta
historia tan típica y que todos hemos sufrido en nuestros
comienzos tiene fácil explicación: simplemente habíamos
comenzado a operar con un sistema sobreoptimizado, que se había
ajustado a la curva de precios histórica, dando unos resultados
muy buenos en el pasado, pero con poco valor predictivo futuro.
Para evitar este tipo de sobreoptimizaciones, ahorrándonos
así varios disgustos, lo más conveniente es aplicar
el análisis en prueba externa a nuestros sistemas. Veamos
en que consiste.
Supongamos
que hoy es día 31 de diciembre de 2000 y tenemos un sistema
muy bueno con el que queremos comenzar a operar al día
siguiente. El proceso habitual es optimizar nuestro sistema en
un conjunto de datos históricos y aplicar el conjunto de
parámetros óptimo a la operativa en mercado real
a partir del 1 de enero de 2001.
De
esta manera podríamos saber como se hubiera comportado
nuestro sistema en un conjunto de datos en los que el sistema
no ha sido optimizado, o lo que es lo mismo, en un conjunto de
datos externos a la optimización. Por lo tanto, en el análisis
de prueba externa lo que hacemos es optimizar el sistema en un
conjunto de datos históricos determinados y aplicar los
parámetros optimizados a otros conjuntos de datos que no
habían sido tenidos en cuenta en nuestra optimización
inicial.
La
idea es dividir nuestro conjunto de datos históricos en
diversos "trozos" de datos, optimizando en cada uno
de los trozos y aplicando los parámetros óptimos
al trozo siguiente. Veámoslo con un ejemplo. Imaginemos
que tenemos un conjunto de datos que va desde el 1/1/1998 al 15/5/2003
y queremos analizar la validez de un determinado sistema de trading.
Para ello tenemos dos opciones:
1) Tomar el conjunto de datos entero, optimizarlo
y comenzar a operar con los parámetros optimizados a partir
del día 16/5/2003. Esta manera, que es la que habitualmente
se suele utilizar, es totalmente errónea, ya que no nos
informa de la bondad del sistema en ningún momento. Simplemente
nos dice que ha sido posible obtener unos buenos resultados con
nuestro sistema en dicho periodo, pero no sabemos nada acerca
del carácter predictivo del sistema, ya que no hemos aplicado
el sistema a datos externos.
2) Dividir el conjunto de datos en diversos periodos.
Por ejemplo, de la siguiente manera:
Periodo
Optimizado |
Parámetros
aplicados al Periodo |
1/1/1998
a 31/12/1998
|
1/1/1999
a 31/3/1999 |
1/4/1998
a 31/3/1999
|
1/4/1999
a 30/6/1999 |
1/7/1998
a 30/6/1999
|
1/7/1999
a 30/9/1999 |
...
|
... |
1/4/2002
a 31/3/2003
|
1/4/2003
a 30/6/2003 |
En
la tabla anterior hemos dividido nuestro conjunto de datos en
periodos de 12 meses, aplicando los parámetros optimizados
a los 3 meses siguientes, obteniendo de esta manera nuestra secuencia
de operaciones en prueba externa. Es importante por lo tanto,
seleccionar el periodo hacia atrás (el periodo que vamos
a optimizar) y el periodo hacia delante (el periodo "futuro"
al que vamos a aplicar los parámetros optimizados). De
esta manera podemos saber que hubiera ocurrido en nuestra cuenta
si hubiésemos comenzado a operar el 1/1/1999, por ejemplo,
con los parámetros optimizados hasta el 31/12/1998.
De
esta manera obtendremos una secuencia de operaciones fruto de
nuestro análisis de prueba externa, siendo nuestras estadísticas
mucho más reales que las obtenidas por la mera optimización
del conjunto de datos global. Además, con este tipo de
prueba evitamos la sobreoptimización del sistema y el ajuste
a la curva de precios, porque la secuencia de operaciones que
hemos conseguido no es fruto de un conjunto de datos optimizado.
Posteriormente, sería conveniente aplicar los análisis
de montecarlo a la secuencia de operaciones externas, para poder
determinar nuestro capital necesario, etc...
Si bien el hecho de que un sistema no haya superado los análisis
de prueba externa no es motivo suficiente para decir que ese sistema
no es bueno, si es cierto que con los análisis de prueba
externa conseguimos una imagen más real de lo que podemos
esperar de nuestro sistema, y sobre todo evitamos que nuestro
sistema se haya simplemente ajustado a la curva de precios histórica
como consecuencia de una sobreoptimización.
Aunque
el proceso de realización de la prueba externa puede llegar
a convertirse en algo bastante tedioso, es recomendable que realicemos
este tipo de pruebas a nuestros sistemas antes de comenzar a operar
con ellos y determinar posteriormente los capitales necesarios
para la misma en función de los análisis de montecarlo
efectuados a la secuencia de operaciones en prueba externa.
Espero
que les haya servido de ayuda este artículo. Para cualquier
duda pueden ponerse en contacto conmigo en chaptrader@yahoo.es
Autor:
José Ramón Díaz