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.
En el indicador personalizado, ¿la ‘línea 1, columna 0’ comienza con ‘TIMEFRAME’?
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
Efectivamente, el comportamiento es el que indicas.
He optado por meter todo el código en el probacktest.
Gracias!
lookback=es un entero, no un decimal