Problemas con la función CALL en ProBacktest

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #232782 quote
    xarana
    Participant
    New

    Hola,

    He creado un indicador personalizado para seguimiento de los MACD de 1 hora y 4 horas. Cuando lo utilizo en los gráficos funciona bien pero al llamarlo desde un sistema automático genera un error sin especificar información.

    El código para llamar al indicador el cual no tiene parametros, es:

    indicator1, indicator2 = CALL "MACD1-4"
    c1 = (indicator1[1] > 0.49)
    c2 = (indicator2[1] > 0.99)

    En el indicador personalizado, el return es lo siguiente:

    Return val1 AS "1 Hour", val2 AS "4 Hour"

    El error que indica es:

    El Backtest no puede iniciarse debido a un error de análisis en el código: línea 2, columna 0.

    El tema es que si quito la función CALL el resto si que funciona así que el problema debe estar ahí.

    Gracias por anticipado.

    #232786 quote
    druby
    Participant
    New

    En el indicador personalizado, ¿la ‘línea 1, columna 0’ comienza con ‘TIMEFRAME’?

    #232787 quote
    xarana
    Participant
    New

    TIMEFRAME(4 hours)
    #232788 quote
    druby
    Participant
    New

    Hice algunas comprobaciones y parece que TIMEFRAME arroja el error cuando está en el archivo CALL, para ProBacktest.

    Para probar, cambie el número de línea TIMEFRAME agregando líneas en blanco adicionales antes. El mensaje de error cambiará y apuntará a una nueva ubicación TIMEFRAME.

    La imagen muestra un escenario básico y eso arroja un error.

    Una solución es usar TIMEFRAME en el archivo ProBuilder y llamar a archivos/indicadores de código genérico y pasarles valores de variables de configuración. Para ello, es necesario configurar variables dinámicas en el archivo CALL.

    Ver código e imagen. La solución alternativa es tener todo el código en el archivo proBacktest.

    druby

    // fileName   test call V1.00 data
    
    // dynamic variables
    // lookback , integer, default = 1
    
    avg = average[lookback](close)
    return avg

     

    timeframe(5minute,updateonclose)
    avg5m = CALL "test call V1.00 data"[10]
    
    timeframe(1minute,updateonclose)
    avg1m = CALL "test call V1.00 data"[20]
    
    
    
    timeframe(default)
    
    cEnter = avg1m crosses over  avg5m
    cExit  = avg1m crosses under avg5m
    
    
    // Conditions to enter long positions
    IF NOT LongOnMarket AND cEnter THEN
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    
    // Conditions to exit long positions
    If LongOnMarket AND cExit THEN
    SELL AT MARKET
    ENDIF
    xarana thanked this post
    Screenshot-2024-05-19-083304.png Screenshot-2024-05-19-083304.png Screenshot-2024-05-19-092625.png Screenshot-2024-05-19-092625.png
    #232798 quote
    xarana
    Participant
    New

    Efectivamente, el comportamiento es el que indicas.

    He optado por meter todo el código en el probacktest.

    Gracias!

    #232799 quote
    fifi743
    Participant
    Master

    lookback=es un entero, no un decimal

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

Problemas con la función CALL en ProBacktest


ProOrder: Trading Automático y Backtesting

New Reply
Author
author-avatar
xarana @xarana Participant
Summary

This topic contains 5 replies,
has 3 voices, and was last updated by fifi743
1 year, 9 months ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 05/18/2024
Status: Active
Attachments: 2 files
Logo Logo
Loading...