Detección de volumen anormal días atrás

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #236323 quote
    repropel
    Participant
    New

    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.

     

    // 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 diario
    TIMEFRAME(Daily)
    
    
    // Inicializar variable para almacenar el día con volumen alto
    DiaConVolumenAlto = 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 anteriores
    VolumenEsMayor = 1
        
    // Bucle interno para comparar el volumen del día analizado con los 10 días anteriores
    FOR i = 1 TO 10 DO
    IF Volume[DiaAnalizado] <= Volume[DiaAnalizado + i] THEN
    VolumenEsMayor = 0
    BREAK
    ENDIF
    NEXT
    
    // Si el volumen del día analizado es mayor que los 10 días anteriores, marcar el día
    IF VolumenEsMayor THEN
    DiaConVolumenAlto = DiaAnalizado
    BREAK
    ENDIF
        
    NEXT
    
    
    // Condición para el rango de precio entre 20 y 50 dólares
    RangoPrecio = (Close[DiaConVolumenAlto] >= 20) AND (Close[DiaConVolumenAlto] <= 50)
    
    
    // Condición final del screener: volumen alto en un día específico y rango de precio
    CONDICION = (DiaConVolumenAlto > 0) AND RangoPrecio
    
    // Definir los criterios de orden y mostrar resultados
    SCREENER[CONDICION](DiaConVolumenAlto AS "Days Since Volume High")
    Captura-de-pantalla-2024-08-12-a-las-8.22.13.png Captura-de-pantalla-2024-08-12-a-las-8.22.13.png
    #236329 quote
    Iván González
    Moderator
    Master

    Buenas,
    Yo en su día programé un screener para localizar valores con mucho más volumen del normal basándome en bollinger.

    mult = 2
    dev = std[20](volume)
    
    bbmed = average[20](volume)
    bbtop = bbmed + mult*dev
    
    SCREENER[volume>bbtop](close as "close")

    También podrías utilizar la instrucción barssince(xxx) para comprobar cuándo se produjo el volumen alto.

    repropel thanked this post
    #236337 quote
    repropel
    Participant
    New

    Hola 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.

    #236342 quote
    Iván González
    Moderator
    Master

    Tienes que limitar el valor.

    mult = 2
    dev = std[20](volume)
    
    bbmed = average[20](volume)
    bbtop = bbmed + mult*dev
    
    bars = 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.

    repropel thanked this post
    #236343 quote
    repropel
    Participant
    New

    Buenas de nuevo Iva,

    Ahora si va perfecto!!.

    Nada que ver con mi código, sin duda un código muy eficiente y que funciona.

     

    Saludos y muchas gracias.

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

Detección de volumen anormal días atrás


ProScreener: Buscadores de Mercado y Rastreo

New Reply
Author
author-avatar
repropel @repropel Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by repropel
1 year, 6 months ago.

Topic Details
Forum: ProScreener: Buscadores de Mercado y Rastreo
Language: Spanish
Started: 08/12/2024
Status: Active
Attachments: 1 files
Logo Logo
Loading...