JEAParticipant
New
Hola.
Estoy intentando hacer un screener en el cual una de las condiciones sea que el volumen en cualquiera de las 5 últimas sesiones sea 2 veces mayor que la media móvil simple del volumen de las últimas 4 sesiones. El código que estoy empleando es el siguiente:
// Volumen > 2*MM4
p=5
vol=volume>2*(average[4](volume))
c1=0
For i=0 to p
If vol[i] then
c1=vol
break
endif
next
Cond1=volume>c1
Cuando ejecuto el screener con este código me da volúmenes en las últimas 5 sesiones tanto que cumplen la condición (ser mayores que 2 veces la media de las 4 últimas sesiones) como que no. Hay algo que se me escapa o que no sé codificar y agradecería una ayuda.
Un saludo.
JEA
JSParticipant
Senior
Hola
Pruebe este screener…
SMAVol=Average[4](Volume)
HighVol=Summation[5](Volume>2*SMAVol)>=1
HighestVol=Highest[5](Volume)
Screener[HighVol](SMAVol as “SMAVol”,HighestVol as “HighestVol”)
JEAParticipant
New
Hola y muchas gracias por la rapidez en contestar.
El screener “per se” funciona perfectamente. No obstante, como lo tengo con otras condiciones estoy probando cuál sería la condición que le tengo que poner en el screener junto con las otras condiciones y no me funciona.
He probado lo siguiente:
Cond5=SMAVol o bien
Cond5=HighVol o bien
Cond5=HighestVol, y luego
Setup=Cond1 and Cond2 and Cond3 and Cond4 and Cond5 (esta Cond5 es la que me has mandado y he probado con las otras 4 condiciones sin éxito).
Screener [setup]
Cuando lanzo el screener me da error. No acierto a entender por qué falla.
He probado incluso a suprimir el comando HighestVol=Highest[5](Volume) porque no me interesa tanto saber qué valor presenta la mayor subida de volumen respecto a la media sino lo que quiero es que me filtre, de acuerdo con todas las condiciones anteriores (Cond1 a Cond4) más esta del volumen, aquellos y sólo aquellos valores cuyo volumen en los días previos tienen el volumen exigido.
En la prueba anterior de supresión de HighstestVol, con la Cond5=volume>HighVol sí funciona el screener pero de nuevo no filtra los valores cuyo volumen sea superior a 2 veces la media de los últimos días.
Quizás no me he explicado bien en mi anterior correo porque aunque no sé gran cosa de programación tengo entendido que “summation” agrega valores y no los discrimina. En fin, que sea lo que sea no va.
Nuevamente gracias por tu ayuda y a ver si le damos una vuelta a ésto.
JEAParticipant
New
Hola de nuevo.
Trasteando he encontrado la siguiente solución:
vol=volume>2*(average[4](volume))
Cond5=summation[5](vol)
Con ésto me funciona perfectamente. Gracias por tu ayuda y un saludo.