Cómo hacer un Backtest con Proscreener?

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

    Hola,

    Llevo varios meses con la idea de poder filtrar valores que cumplan con un tipo de estrategia (por ejemplo: un cruce de medias) con ProScreener pero en el pasado.

    Roberto me ayudo hace un año y me dio este código:

    Timeframe(Daily)
    Sma20 = average[20,0](close)
    Cond= 0
    FOR i = 0 TO 250
    IF OpenDate[i] = 20220831 THEN
    IF close[i] CROSSES OVER Sma20[i] THEN
    Cond = 1
    break
    ENDIF
    ENDIF
    NEXT
    SCREENER[Cond]

    Me ha servido de mucho pero me encuentro limitado a un valor.

    Mi intención es buscar todos los valores que cumplan con la condición en un periodo de tiempo en el pasado. Por ejemplo: buscar todas las acciones que cruzaron la media de 20 en octubre del 2023.

    Lo que busco con esto es poder analizar a modo de backtest si mi estrategia había funcionado.
    El backtest que tiene la plataforma es muy bueno, pero tienes que ir valor a valor, mi intención con esto es ir más rápido ya que lo que necesito es analizar el gráfico.
    Agradecería que alguien me eche una mano.

    Un saludo y gracias.

    #226993 quote
    Nicolas
    Keymaster
    Master

    ¡Hola!

    Entiendo tu necesidad de buscar valores que cumplieron con ciertas condiciones en un período específico en el pasado, como el cruce de una media móvil. El código que Roberto te proporcionó es un buen punto de partida, pero como mencionas, está limitado a una fecha específica.

    Para extender esta lógica a un rango de fechas, como todo el mes de octubre de 2023, necesitamos modificar el código para que itere a través de las fechas del rango deseado y verifique la condición de cruce de medias para cada una de ellas. Aquí te dejo un ejemplo de cómo podrías hacer esto:

    Timeframe(Daily)
    Sma20 = average[20,0](close)
    Cond = 0
    
    // Define el rango de fechas
    FechaInicio = 20231001
    FechaFin = 20231031
    
    FOR i = 0 TO 250
        IF OpenDate[i] >= FechaInicio AND OpenDate[i] <= FechaFin THEN
            IF close[i] CROSSES OVER Sma20[i] THEN
                Cond = 1
                break
            ENDIF
        ENDIF
    NEXT
    
    SCREENER[Cond]

    Este código revisará todos los valores en el rango de fechas desde el 1 hasta el 31 de octubre de 2023. Si encuentra un valor que cumpla con la condición (en este caso, el cruce de la media móvil de 20 días), Cond se establecerá en 1, indicando que ese valor cumple con la condición de tu estrategia.

    Espero que este código te sea útil para tu análisis y backtesting. Si tienes más preguntas o necesitas asistencia adicional, no dudes en preguntar. ¡Suerte con tu estrategia de trading!

    #227016 quote
    repropel
    Participant
    New

    Hola Nicolas,

    Muchas gracias por tu ayuda. Lo probaré pero seguro que irá bien.

    Un saludo y gracias de nuevo.

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

Cómo hacer un Backtest con Proscreener?


ProScreener: Buscadores de Mercado y Rastreo

New Reply
Author
author-avatar
repropel @repropel Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by repropel
2 years, 1 month ago.

Topic Details
Forum: ProScreener: Buscadores de Mercado y Rastreo
Language: Spanish
Started: 01/29/2024
Status: Active
Attachments: No files
Logo Logo
Loading...