Esta frase que puso de moda un programa infantil ochentero, viene al dedillo en el artículo de hoy gracias a jose7674 , el creador del mítico blog http://jose7674.blogspot.com.es/
Pasando una crísis de inspiración le pregunté a Jose si tenía alguna cosilla interesante por ahí para publicar en este blog.
Lo que me mandó, no es solo una curiosidad , es un completo basket sobre una pauta estacionaria , cuyo párrafo es reproducido íntegramente.
Comprar el 1er dia del mes... sigue funcionando?
Bueno, he hecho una revisión al sistema clásico de comprar el primer dia del mes, para ver si realmente es algo a tener en cuenta en nuestros sistemas de Trading.
Este sistema, compra en la
apertura del 1er dia de trading y vende en la apertura del 2. Sin más.
Fácil y rápido, ninguna complicación y fácil de programar.
He desarrollado 2 variantes del sistema clásico, y los he pasado por el Ibex, DAX y DJI.
El primer sistema (el inferior), compra el primer dia de trading en apertura y vende el segundo dia en apertura
El
2 sistema (en el medio), aplica el filtro de una media. Si el precio
esta por encima de dicha media, se compra en la apertura del 1er dia del
mes y se vende en la apertura del segundo
El 3er sistema aplica una media de control y, ademas, añade un stoploss optimizable del 1-5%.
Asi que vamos a ver los resultados en el Ibex...Como podeis ver, resultados similares... pero el sistema 3 (el de arriba), reduce el drawdown y el número de operaciones, con lo que se reducen las comisiones (que no se han incluido en el backtest).
Las pruebas se han hecho en el contado del ibex.
DAX 30
Mismos resultados. El sistema con filtro en la media y stoploss gana más y opera menos.
----------------
Vamos a ver el DAX (en este caso futuro) desde el 2007. Es interesante porque en los backtests parece que el sistema se ha aplanado en los ultimos años y ha dejado de funcionar tan bien como lo hacia...
Parece que teniamos razón... el sistema de comprar sin más se mantiene plano, con ligeras ganancias y pérdidas.
Los sistemas con filtros mejoran (mucho) el resultado. Y si añadimos el stoploss aun mejora muchísimo más.
---------------------------
Y por ultimo el DJI.---------------------------
Aquí los 3 sistemas consiguen unos beneficios en puntos similares. Pero, nuevamente, el sistema 3 consigue ganar prácticamente lo mismo operando menos y reduciendo el drawdown, por lo que su curva es mucho mas estable y las comisiones se ven reducidas.
-----------------------
Os dejo el sistema 3 para prorealtime
////SISTEMA DE COMPRA EL 1ER DIA DEL MES
////Por jose7674
c2 = close > average[m](close)
If (MONTH = 1 or MONTH = 3 or MONTH = 5 or MONTH = 7 or MONTH = 8 or MONTH = 10 or MONTH = 12) and DAY = 31 and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
If (MONTH = 1 or MONTH = 3 or MONTH = 5 or MONTH = 7 or MONTH = 8 or MONTH = 10 or MONTH = 12) and (DAY = 29 or day=30) and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
IF MONTH = 2 and DAY = 28 and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
IF MONTH = 2 and (DAY = 26 or day=27) and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
//
If (month = 4 or MONTH = 6 or MONTH = 9 or MONTH =11) and DAY = 30 and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
If (month = 4 or MONTH = 6 or MONTH = 9 or MONTH =11) and (DAY = 28 or day=29) and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
if longonmarket then
sell at market
endif
////FINIf (MONTH = 1 or MONTH = 3 or MONTH = 5 or MONTH = 7 or MONTH = 8 or MONTH = 10 or MONTH = 12) and DAY = 31 and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
If (MONTH = 1 or MONTH = 3 or MONTH = 5 or MONTH = 7 or MONTH = 8 or MONTH = 10 or MONTH = 12) and (DAY = 29 or day=30) and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
IF MONTH = 2 and DAY = 28 and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
IF MONTH = 2 and (DAY = 26 or day=27) and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
//
If (month = 4 or MONTH = 6 or MONTH = 9 or MONTH =11) and DAY = 30 and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
If (month = 4 or MONTH = 6 or MONTH = 9 or MONTH =11) and (DAY = 28 or day=29) and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
if longonmarket then
sell at market
endif
nota: Agradezcamos desde aquí semejante currada de jose7674 digna de haber aparecido en su blog y que amablemente me ha cedido para incluirlo en este.
Una pauta muy interesante, y un trabajo excepcional.
ResponderEliminarUn abrazo.
Este Jose7674 eh un mostruo,lo que yo te digo Miguel.Me gusta este tipo de colaboraciones,nene guta,guta mucho...
EliminarUn saludo fiera.
PUES NO HAY MANERA DE PONÉRMELO EN MI SISTEMA DE PROBACKTEST
EliminarImagino que tienes que definir las variables sl y m
EliminarSl es de 1-3, paso 1
La variable m de 100 a 200, paso 25 para simplificar
Gracias por compartir con los demás todas vuestras experiencias.
ResponderEliminarHe intentado validar el programa y me sale lo siguiente:
Error de sintaxis:
Las órdenes BUY/STOP sólo se permiten en ProBacktest.
¿Podrías decirme cómo solucionarlo?
¡¡¡¡¡¡¡¡¡¡Muchísimas gracias!!!!!!!!!
Lo que me mandó jose7674 es un screener, un sistema de trading automático, y hay que meterlo mediante la pestaña de baskets y trading automático o bien mediante nuevo proscreener...a ver si lo que pasa es que intenta usted meterlo en indicadores...
EliminarUn saludo anónimo.
Efectivamente yo trataba de meterlo en indicadores. Ahora he tratado de meterlo mediante la pestaña de baskets y trading automático y me pide que defina las variables: m y sl. Agradecería una ayudita.
ResponderEliminarMil gracias por anticipado y un afectuoso saludo.
Si, perdona, eso se me olvido ponerlo
ResponderEliminarm es la media de control. Yo uso de 100 a 200, paso 10
sl es el stoploss. yo uso de 1 a 3, paso 1
Ahora sí.
ResponderEliminarMuchísimas gracias