Detección de volumen anormal días atrás
Forums › ProRealTime foro Español › Soporte ProScreener › Detección de volumen anormal días atrás
- This topic has 4 replies, 2 voices, and was last updated 3 months ago by repropel.
-
-
08/12/2024 at 7:40 AM #236323
Hola,
Estoy intentando hacer un screener que me permita encontrar empresas que hayan tenido un volumen anormal días atrás. Me tendría que indicar el número de barras hacia atrás en el pasado en que se ha producido el evento. Y para rizar el rizo, poder configurar a partir de cuanto volumen considero que es un volumen anormal.
Dejo el código que estoy desarrollando, funciona, pero no con la fiabilidad que quisiera, ya que hay veces que falla y no entiendo el porque. Tal vez me he liado y se puede escribir el código de una manera diferente y mas simple.
Adjunto también una imagen de lo que estoy buscando. En este caso me tendría que marcar el día 1 en el screener.
Muchas gracias.
Código de Volumen anormal en el pasado1234567891011121314151617181920212223242526272829303132333435363738394041424344// El scanner busca las acciones que han tenido un volumen muy alto en comparación con los días anteriores.// Da como resultado el día que la acción ha aumentado el volumen ( o tendría que hacer eso)// A TENER EN CUENTA: el algoritmo funciona algunas veces y otras no.// Define el timeframe a diarioTIMEFRAME(Daily)// Inicializar variable para almacenar el día con volumen altoDiaConVolumenAlto = 0// Bucle externo para seleccionar el día en cuestión (hasta 10 días atrás)FOR DiaAnalizado = 0 TO 10 DO// Inicializar indicador de si el volumen es mayor a los 10 días anterioresVolumenEsMayor = 1// Bucle interno para comparar el volumen del día analizado con los 10 días anterioresFOR i = 1 TO 10 DOIF Volume[DiaAnalizado] <= Volume[DiaAnalizado + i] THENVolumenEsMayor = 0BREAKENDIFNEXT// Si el volumen del día analizado es mayor que los 10 días anteriores, marcar el díaIF VolumenEsMayor THENDiaConVolumenAlto = DiaAnalizadoBREAKENDIFNEXT// Condición para el rango de precio entre 20 y 50 dólaresRangoPrecio = (Close[DiaConVolumenAlto] >= 20) AND (Close[DiaConVolumenAlto] <= 50)// Condición final del screener: volumen alto en un día específico y rango de precioCONDICION = (DiaConVolumenAlto > 0) AND RangoPrecio// Definir los criterios de orden y mostrar resultadosSCREENER[CONDICION](DiaConVolumenAlto AS "Days Since Volume High")08/12/2024 at 8:36 AM #236329Buenas,
Yo en su día programé un screener para localizar valores con mucho más volumen del normal basándome en bollinger.1234567mult = 2dev = std[20](volume)bbmed = average[20](volume)bbtop = bbmed + mult*devSCREENER[volume>bbtop](close as "close")También podrías utilizar la instrucción
barssince(xxx)
para comprobar cuándo se produjo el volumen alto.1 user thanked author for this post.
08/12/2024 at 11:28 AM #236337Hola Ivan,
Muchas gracias por tu respuesta. El código funciona muy bien. Pero al utilizar la función barssince() me salen resultados lejanos. A partir del día 38.
He estado mirando la documentación y probando los ejemplos pero no consigo que funcione como quiero. Es decir, que me muestre únicamente los tickers con volúmenes anormales desde hace 15 días, no mas.
Un saludo.
08/12/2024 at 12:47 PM #236342Tienes que limitar el valor.
123456789mult = 2dev = std[20](volume)bbmed = average[20](volume)bbtop = bbmed + mult*devbars = barssince(volume>bbtop)SCREENER[bars>=0 and bars<10](bars as "bars")En el ejemplo he puesto 10 velas. Además hay que limitarlo por abajo porque barssince puede valer -1 en caso de no haberse producido el evento.
1 user thanked author for this post.
08/12/2024 at 1:59 PM #236343 -
AuthorPosts
Find exclusive trading pro-tools on