Inicio
» Biblioteca
» ESTUDIOS SOBRE EL METASTOCK
Errores con Delay
Me he vuelto a topar con un problema que Antonio P.
encontró ya hace tiempo y que quedó un poco en el olvido. Retomo el asunto.
En las fórmulas que tengo de medias móviles (pongamos
el ejemplo de las 6/60) suelo poner para entrar "mov(c,6,e) > mov(c,60,e)".
Esto plantea un problema. Si se utilizan stops de pérdidas y uno no se sale por las
medias sino por el stop, como nos hemos salido por el stop aún la media de 6 es mayor que
la de 60, por lo que al día siguiente se vuelven a abrir largos. Para evitar este
problema en vez de abrir largos cuando "mov(c,6,e) > mov(c,60,e)", pueden
abrirse largos cuando "cross(mov(c,6,e), mov(c,60,e))", de modo que cuando la
media de 6 cruza hacia arriba la de 60 es el momento de entrar, y si tenemos un stop de
pérdidas aunque al día siguiente la media de 6 siga siendo superior a la de 60, esta
orden no nos da señal de compra. El problema en caso de utilizar el "cross" es
que si utilizamos el Delay, a veces nos quedamos fuera.
Lo he probado con el MACD en el Ibex y ocurre
precisamente eso cuando estábamos en mínimos de hace un par de meses. Para el MACD la
señal de compra sería cuando "cross(mov (macd()), (macd(), 9, e))". El día
5/10/98 hay una señal de venta y el 6/10/98 hay una señal de compra. Si utilizamos un
Delay=0 se apunta la venta el 5/10/98 y la compra el 6/10/98. Pero si utilizamos el
Delay=1 se apunta la venta el 6/10/98 y la compra el 23/11/98. Es decir, el día que
vende, el 6/10/98, el Metastock da señal de compra, pero por alguna razón no se tiene en
cuenta, de modo que hay que esperar al siguiente cruce, para que se acabe comprando el
23/11/98. Si en vez de utilizar la fórmula "cross(mov (macd()), (macd(),9,e))"
se utiliza la de "macd() > mov(macd(),9,e)", con Delay=0 se vende el 5/10/98
y se compra el 6/10/98 (igualmente), y si ponemos Delay=1 se vende el 6/10/98 y se compra
el 8/10/98. Parece claro que el día en que se ejecuta la señal el Metastock no atiende a
lo que está pasando. Si el 6/10/98, día en que se vende, hay una señal de compra, el
Metastock no se entera y es el 7/10/98 cuando el Metastock lo procesa y da la orden para
el día siguiente 8/10/98. Parece pues que las fórmulas que contienen el comando
"cross" son peligrosas si se combinan con un Delay=1. Si en dos días
consecutivos hay dos señales, la segunda de ellas se ignora, con lo cual nos quedamos
fuera hasta el siguiente cruce. Y es una pena, pues para utilizar stops se ve que lo
conveniente es usar el "cross" para que el Metastock no nos apunte una compra
justo después de haber salido por un stop. Cuidado por tanto con las fórmulas que se
usan y con el posible error que se puede dar al utilizar un Delay=1. |