error “DEFPARAM Preloadbars = 10000”
Forums › ProRealTime foro Español › Soporte ProOrder › error “DEFPARAM Preloadbars = 10000”
- This topic has 12 replies, 2 voices, and was last updated 10 months ago by JAVIER ZAMORA.
-
-
01/02/2024 at 3:03 PM #225913
Hola
Llevo dos semanas que me sale un fallo cuando estoy operando en real y no sé como solucionarlo. El error que me sale es el siguiente:
“El sistema de trading se ha detenido porque los datos históricos cargados son insuficientes para el cálculo de al menos un indicador durante la evaluación de la última vela. Puede evitar esto en el futuro modificando el número de velas precargadas con la instrucción DEFPARAM (ex: DEFPARAM Preloadbars = 10000)”
Pongo el sistema a funcionar y antes de que termine la primera vela se me para el sistema. Llevaba utilizandolo varios meses y no me daba fallo pero de repente lo hago una y otra vez y me sigue saliendo ese fallo. Por supuesto que le tengo puesto la orden DEFPARAM Preloadbars = 10000
Ese error me da en el dax en distintos espacios temporales tanto si es por ejemplo para 1 hora como si es para 3 minutos. Sin embargo ese mismo sistema en el Bitcoin no me da fallo
¿Que podrá ser??
Gracias de antemano
01/03/2024 at 12:25 PM #225926Puede ser que utilices más de 10000 barras. ¿Cuál es el número máximo de períodos que utiliza con indicadores o con instrucciones que hacen referencia a períodos anteriores (tipoCLOS[n] o HIGHEST[n])?
01/03/2024 at 3:30 PM #225937Gracias por contestar tan rapido
Hago referencia al indicador Blai5 Konkorde que tiene este codigo:
pvi = PositiveVolumeIndex(close)
pvim = ExponentialAverage[m](pvi)
pvimax = highest[90](pvim)
pvimin = lowest[90](pvim)
oscp = (pvi – pvim) * 100/ (pvimax – pvimin)
nvi =NegativeVolumeIndex(close)
nvim = ExponentialAverage[m](nvi)
nvimax = highest[90](nvim)
nvimin = lowest[90](nvim)
azul = (nvi – nvim) * 100/ (nvimax – nvimin)
xmf = MoneyFlowIndex[14]
OB1 = (BollingerUp[25](TotalPrice) + BollingerDown[25](TotalPrice)) / 2
OB2 = BollingerUp[25](TotalPrice) – BollingerDown[25](TotalPrice)BollOsc = ((TotalPrice – OB1) / OB2 ) * 100
xrsi = rsi [14](TotalPrice)
STOC = Stochastic[21,3](TotalPrice)
marron = (xrsi + xmf + BollOsc + (STOC / 3))/2
verde = marron + oscp
media = ExponentialAverage[m](marron)
bandacero= 0
return verde COLOURED(102,255,102) as “verde”, marron COLOURED(255,204,153) as “marron”, marron COLOURED(51,0,0) as “lmarron”, azul COLOURED(0,255,255) as “azul”, verde COLOURED(0,102,0) as “lineav”, azul COLOURED(0,0,102) as “lazul”, media COLOURED(255,0,0) as “media”, bandacero COLOURED(0,0,0) as “cero”
Segun veo no supera 90 periodos
01/03/2024 at 7:27 PM #225943Y como te digo lo más raro es que me da error en el Dax en cualquier horizonte temporal y sin embargo en el Bitcoin no hay ningún problema
01/04/2024 at 4:24 PM #225955Llamé al indicador xBlai5 Konkorde, al que le pasé el valor 20 para la media exponencial.
Lo probé en el DAX, 1 segundo, y funcionó perfectamente, sin usar DEFPARAM Preloadbars.
12345678910DEFPARAM CumulateOrders = Falseignored, ignored, ignored, ignored, ignored, indicator1, indicator2, ignored = CALL "xBlai5 Konkorde"[20]c1 = (indicator1 CROSSES OVER indicator2)c2 = (indicator1 CROSSES UNDER indicator2)IF c1 AND ((Not OnMarket) OR (Not LongOnMarket AND PositionPerf )) THENBUY 1 CONTRACT AT MARKETENDIFIF c2 AND ((Not OnMarket) OR (Not ShortOnMarket AND PositionPerf )) THENSELLSHORT 1 CONTRACT AT MARKETENDIF01/05/2024 at 10:31 AM #225976Gracias por tu respuesta, he probado pero me sigue dando fallo en culaquier momento temporal con el Dax
Te paso el codigo entero que pongo en marcha y me sigue dando el mismo fallo ““El sistema de trading se ha detenido porque los datos históricos cargados son insuficientes para el cálculo de al menos un indicador durante la evaluación de la última vela. Puede evitar esto en el futuro modificando el número de velas precargadas con la instrucción DEFPARAM (ex: DEFPARAM Preloadbars = 10000)”
//————————————————————————-
// Código principal : MiSistema(48)
//————————————————————————-
DEFPARAM CumulateOrders = Falseif dayofweek=5 and time>212300 then
exitshort at market
sell at market
endif
// Condiciones para entrada de posiciones largas
ignored, ignored, ignored, ignored, indicator1, ignored, indicator2, ignored = CALL “BLAI5 KONCORDE v.09″[20]
c1 = (indicator1 CROSSES OVER indicator2 [1])IF c1 AND((Not OnMarket) OR (Not LongOnMarket AND PositionPerf )) THEN
BUY 0.5 CONTRACT AT MARKET
ENDIF// Stops y targets
SET STOP pLOSS 120
SET TARGET pPROFIT 75//————————————————————————-
// Función : BLAI5 KONCORDE v.09
//————————————————————————-
REM BLAI5 KONCORDE v.09
REM versión actualizada y reformulada
REM programada por Blai5
REM Junio 2008pvi = PositiveVolumeIndex(close)
pvim = ExponentialAverage[m](pvi)
pvimax = highest[90](pvim)
pvimin = lowest[90](pvim)
oscp = (pvi – pvim) * 100/ (pvimax – pvimin)
nvi =NegativeVolumeIndex(close)
nvim = ExponentialAverage[m](nvi)
nvimax = highest[90](nvim)
nvimin = lowest[90](nvim)
azul = (nvi – nvim) * 100/ (nvimax – nvimin)
xmf = MoneyFlowIndex[14]
OB1 = (BollingerUp[25](TotalPrice) + BollingerDown[25](TotalPrice)) / 2
OB2 = BollingerUp[25](TotalPrice) – BollingerDown[25](TotalPrice)BollOsc = ((TotalPrice – OB1) / OB2 ) * 100
xrsi = rsi [14](TotalPrice)
STOC = Stochastic[21,3](TotalPrice)
marron = (xrsi + xmf + BollOsc + (STOC / 3))/2
verde = marron + oscp
media = ExponentialAverage[m](marron)
bandacero= 0
return verde COLOURED(102,255,102) as “verde”, marron COLOURED(255,204,153) as “marron”, marron COLOURED(51,0,0) as “lmarron”, azul COLOURED(0,255,255) as “azul”, verde COLOURED(0,102,0) as “lineav”, azul COLOURED(0,0,102) as “lazul”, media COLOURED(255,0,0) as “media”, bandacero COLOURED(0,0,0) as “cero”
01/05/2024 at 1:00 PM #225982Adjunte el archivo ITF por favor.
01/06/2024 at 1:13 PM #226036Hola
Le adjunto el archivo “misistema(48).itf”
01/06/2024 at 6:29 PM #226056Bueno, lo activé0 en el DAX, 1 segundo.
El lunes te aviso si funciona o no.01/08/2024 at 10:59 AM #226099Me informó “Error de división por cero”.
Cambié las líneas en el indicador donde había una división y ahora funciona. Adjunto el código modificado en el archivo ITF.
Nunca he tenido errores como el tuyo.12345678910111213141516171819202122//// Definizione dei parametri del codice//DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate////// Condizioni per entrare su posizioni long//ignored, ignored, ignored, ignored, ignored, indicator1, indicator2, ignored = CALL "BLAI5 KONCORDE v.09"[15]//c1 = (indicator1 CROSSES OVER indicator2)////IF c1 THEN//BUY 1 CONTRACT AT MARKET//ENDIFDEFPARAM CumulateOrders = False//ignored, ignored, ignored, ignored, ignored, indicator1, indicator2, ignored = CALL "xBlai5 Konkorde"[18]ignored, ignored, ignored, ignored, ignored, indicator1, indicator2, ignored = CALL "BLAI5 KONCORDE v.09a"[15]c1 = (indicator1 CROSSES OVER indicator2)c2 = (indicator1 CROSSES UNDER indicator2)IF c1 AND ((Not OnMarket) OR (Not LongOnMarket AND PositionPerf )) THENBUY 1 CONTRACT AT MARKETENDIFIF c2 AND ((Not OnMarket) OR (Not ShortOnMarket AND PositionPerf )) THENSELLSHORT 1 CONTRACT AT MARKETENDIF01/08/2024 at 10:52 PM #226122Hola Roberto
Gracias por contestar
Ese error de división por 0 a mi no me lo da ahora ni antes. Es curioso que a ti te de un error distinto a mi y que a ti no te salga el que me sale a mi ” El sistema de trading se ha detenido porque los datos históricos cargados son insuficientes para el cálculo de al menos un indicador durante la evaluación de la última vela. Puede evitar esto en el futuro modificando el número de velas precargadas con la instrucción DEFPARAM (ex: DEFPARAM Preloadbars = 10000)”
Tu me has pasado el itf del indicador retocado, he probado con el y también me sigue fallando el sistema tanto en 1 segundo como en otros intervalos temporales de 5 o 30 minutos.
Solo lo utilizo para comprar, la venta no funciona muy bien
Este es el codigo que te puse y que es muy parecido al que tu me has pasado, en los dos no me deja empezar, enseguida se me para por el fallo que te digo
Seguro que es una tonteria pero no sé porque sigue saliendo el fallo, y lo peor es que me da a mi y a ti no
DEFPARAM CumulateOrders = False
if dayofweek=5 and time>212300 then
exitshort at market
sell at market
endif
// Condiciones para entrada de posiciones largas
ignored, ignored, ignored, ignored, indicator1, ignored, indicator2, ignored = CALL “BLAI5 KONCORDE v.09″[20]
c1 = (indicator1 CROSSES OVER indicator2 [1])IF c1 AND((Not OnMarket) OR (Not LongOnMarket AND PositionPerf )) THEN
BUY 0.5 CONTRACT AT MARKET
ENDIF// Stops y targets
SET STOP pLOSS 120
SET TARGET pPROFIT 7501/09/2024 at 8:42 AM #226129No sé que decirte, intenta preguntarle a PRT abriendo una solicitud desde la plataforma con las teclas CTRL+M.
01/09/2024 at 4:38 PM #226165Gracias por tu implicación y todas tus respuestas
Un saludo
-
AuthorPosts