En
ocasiones tratamos de complicar en exceso el código de
programación de nuestro sistema en búsqueda de filtros
que nos ayuden a reducir las rachas de pérdidas del sistema,
aumentar la fiabilidad o la media por operación ganadora,
... mejorar en definitiva los estadísticos más significativos
de nuestro sistema. Para ello utilizamos medias móviles
como filtros de tendencia, el indicador ATR como filtro de volatilidad,
etc... Pero es posible utilizar uno de los filtros más
eficaces a la hora de eliminar operaciones negativas de nuestros
sistemas: el filtro horario. En su versión más sencilla,
un filtro horario consiste en incorporar a nuestro código
de programación una condición horaria, de tal manera
que no se le permita al sistema ejecutar ninguna operación
fuera del rango horario seleccionado.
Al
igual que ocurre con la distribución del volumen de negociación
a lo largo de la sesión, los resultados de nuestro sistema
no se van a producir equitativamente a lo largo del día.
Habrá rangos horarios donde nuestro sistema ofrezca mejores
rendimientos y mediante el uso de filtros horarios podremos obligar
a nuestro sistema a que solo realice operaciones en aquellos rangos
horarios donde exista una mayor probabilidad de éxito.
Puede descargarse el siguiente código en vba de un sencillo
sistema seguidor de tendencia al que le hemos incorporado un simple
filtro horario. Los parámetros del sistema son:
ActivarFiltroHorario: Le daremos valor 1 si queremos
activar el filtro horario y cualquier otro valor para no activarlo.
PeriodoInicio: Es el número de barra a
partir de la cual permitimos al sistema que comience a operar,
en el caso de que hayamos dado el valor 1 al parámetro
anterior, es decir, en el caso de que hayamos activado el filtro
horario. Si hemos dado un valor distinto a 1 al parámetro
ActivarFiltroHorario, este parámetro no afectará
al sistema.
PeriodosPermiso: Es el número de barras,
a partir de la barra “PeriodoInicio”, que permitimos
al sistema realizar operaciones. Si hemos dado un valor distinto
a 1 al parámetro ActivarFiltroHorario, este parámetro
no afectará al sistema.
BarrasAtras: Es el número de barras que
se utilizan para definir los puntos de compra y de venta del sistema.
Si BarrasAtras = 20, compraremos en el máximo de las últimas
20 barras o venderemos en el mínimo de las últimas
20 barras.
Vemos por lo tanto que el sistema es un sencillo sistema seguidor
de tendencia, basado en ruptura de rangos.
A modo de ejemplo, añadimos la siguiente tabla, que nos
resume las estadísticas más importantes del sistema,
sin filtro horario y con filtro horario, utilizando el mismo valor
del parámetro BarrasAtras.
Futuro: DAX
Compresión: 15 minutos.
Periodo Análisis: 1/1/2001 al 31/12/2004
Parámetros: 0 – 27 – 4 –
20 (para el sistema sin filtro horario).
1 – 27 – 4 – 20 (para el sistema con filtro
horario).
| |
Sistema
SIN Filtro Horario |
Sistema
CON Filtro Horario |
Resultado
en euros
|
64.630 |
136.052,05 |
Peor
serie de pérdidas en euros
|
-49.115 |
-32.620 |
Número
de negocios
|
1449 |
467 |
Ganancia
media por negocio
|
44,6 |
291,3 |
Ratio |
0,33 |
1,05 |
Fiabilidad |
36,99% |
49,46
% |
Nota:
En ambos sistemas se ha descontado un total de 55 euros por negocio
(compra y venta) en concepto de comisiones y deslizamientos
Como podemos comprobar en la tabla superior, la incorporación
del filtro horario mejora considerablemente todas las estadísticas
de nuestros sistemas. Aunque para poder utilizar este sistema
con filtro horario habría que realizar otras pruebas adicionales
para comprobar la robustez del sistema, etc... hemos conseguido
demostrar como la incorporación de un sencillo filtro horario
nos permite mejorar sobremanera las estadísticas de nuestro
sistema.
Espero
que les haya servido de ayuda este artículo. Para cualquier
duda pueden ponerse en contacto conmigo en chaptrader@yahoo.es
Autor:
Equipo de Desarrollo de Sistemas deAutoTrading[bot]