Buenas noches a ti también. Lo he probado. Es todo lo mismo.
El resultado es el mismo. El error aparece en el registro por cada tic.
Gracias por la idea. Si SeriesInfoInteger() no está accediendo a Bares internamente, entonces todo es más probable que se trate de una "estrecha" metedura de pata de datos en el servidor del broker.
Y esa es también una respuesta satisfactoria a mi pregunta.
Después de todo, no es que no sepa dónde va a aparecer el error, si puedo evitarlo, etc.
Buenas noches a ti también. Lo he probado, y lo mismo.
El resultado es el mismo. El error aparece en el registro por cada tic.
Gracias por la idea. Si SeriesInfoInteger() no está accediendo a Bars internamente, entonces es cada vez más probable que sea una unión de datos "estrecha" en el servidor del broker.
Y eso también es una respuesta satisfactoria a mi pregunta.
Después de todo, no sé dónde va a aparecer el error, si puedo evitarlo, etc.
Quizás realmente haya un error en el broker, ya que el mensaje borra algunas barras "rotas"... o los datos se "matan" por el camino. Pero, esto es sólo una suposición de mi parte. Por cierto, ¿me da algo GetLastError()? Sí, ¿y qué devuelve Bars()?
Tapochun: Probablemente, es un error del corredor, porque el mensaje borra algunas barras "rotas"... o los datos se "matan" por el camino. Pero, esto es sólo una suposición de mi parte. Por cierto, ¿me da algo GetLastError()? Sí, ¿y qué devuelve Bars()?
Si Bars() devuelve 0, entonces el error 4001 (ERR_INTERNAL_ERROR 4001 Unexpected internal error).
Pero a veces Bars() sigue devolviendo el número de barras y entonces no hay error (Bars() no cambia el estado de error).
Si Bars() devuelve 0, entonces el error 4001 (ERR_INTERNAL_ERROR 4001 Unexpected internal error).
Pero a veces Bars() sigue devolviendo el número de barras y entonces no hay error (Bars() no cambia el estado de error).
Lo "inesperado" del error sugiere, una vez más, que algo no tiene tiempo de llegar y se borra, por lo que se produce el error. Según tengo entendido, hay que averiguar el número de barras en D1... ¿Hay que hacerlo en cada tick? Alternativamente, escriba una función que solicite datos una vez por minuto o menos. Y ver si se produce un error.
Intentando copiar los datos actuales de la barra cero:
Imprime n=0, es decir, los datos no se copian.
Sise escribe_Period en lugar dePERIOD_CURRENT, funciona.
Si se copian datos de barra distintos de cero (tiempo[1], etc.), funcionará, independientemente de si se escribePERIOD_CURRENT o_Period.
P.D. ¿Lo quieres en un cd?
Por la noche. Pruébalo... aunque si hay una alternativa, es poco probable que se apresuren a buscar este fallo. Tengo dos solicitudes pendientes desde hace una semana... no hay respuesta, no hay palabra.
No, claro que no. De eso se trata. Para cuando el propio indicador se ejecuta en D1, tenemos trivialmente"constint rates_total, // tamaño de la serie temporal de entrada".
He aquí un ejemplo concreto de su uso.
Inicializamos un par de indicadores y obtenemos sus manejadores (todo está bien aquí). A continuación, en la función ontik tenemos que asegurarnos de que en el momento de la llamada se han calculado todos los datos en los manejadores necesarios (índices externos). Y esto es lo que hago:
//not all data may be calculatedif (BarsCalculated(hCCI)<rates_total) {Print("Not all data of trend CCI is calculated. Error#",GetLastError()); return(0);}
if (Period()!=PERIOD_D1 && BarsCalculated(hDayTrand)<Bars(Symbol(),PERIOD_D1)) return(0);
Y en este caso hDayTrand es un manejador recursivo (el mismo indicador, sólo se carga D1).
Parece que todo lo hago según la documentación y los ejemplos del terminal y según las recomendaciones. El resultado es que todo esto se revuelve en el registro y come megabytes por minuto.
No, claro que no. Esta es la cuestión. Para cuando el propio indicador se ejecuta en D1, tenemos trivialmente"constint rates_total, // tamaño de la serie temporal de entrada".
He aquí un ejemplo concreto de su uso.
Inicializamos un par de indicadores y obtenemos sus manejadores (todo está bien aquí). A continuación, en la función ontik debemos asegurarnos de que en el momento de la llamada ya se han calculado todos los datos de los manejadores necesarios (índices externos). Y esto es lo que hago:
Y en este caso hDayTrand es un manejador recursivo (el mismo indicador, sólo se carga D1).
Parece que todo lo hago según la documentación y los ejemplos del terminal y según las recomendaciones. El resultado: todo esto queda garabateado en el registro y consume megabytes por minuto.
IMHO, usted tiene que ponerse en contacto con el corredor (Otkrytie, por lo que entiendo). Las cuentas reales no lo tienen, así que lo más probable es que esté en la configuración del servidor.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Error
Desafío:
Lleva a un mensaje en el cuaderno de bitácora:
HistoryBase 'RTS-12.14' 1 barras inválidas eliminadas
Estoy harto de este error. Entre otras cosas, también se está cargando el canal de comunicación.
El mismo error aparece por otros motivos no identificados.
Pero, curiosamente, no aparece en muchos otros instrumentos. Es el que más aparece en los futuros de RTS.
Escribí a servicedesk hace unos meses - sin respuesta(Solicitud iniciada: 2014.07.28 13:41, #1046215).
Adjunto el código del induke que provoca este error en cada tick de los futuros RTS actuales (y pasados) (cuenta demo con broker "O..."):
¿Es un error en el terminal? ¿O en el corredor? ¿O yo?
¿Qué debo hacer? ¿Cómo saber el número de barras en el marco temporal D1 de otra manera?
Buenas noches. ¿Lo has probado?
Buenas noches. ¿Has probado esto?
Buenas noches a ti también. Lo he probado. Es todo lo mismo.
El resultado es el mismo. El error aparece en el registro por cada tic.
Gracias por la idea. Si SeriesInfoInteger() no está accediendo a Bares internamente, entonces todo es más probable que se trate de una "estrecha" metedura de pata de datos en el servidor del broker.
Y esa es también una respuesta satisfactoria a mi pregunta.
Después de todo, no es que no sepa dónde va a aparecer el error, si puedo evitarlo, etc.
Buenas noches a ti también. Lo he probado, y lo mismo.
El resultado es el mismo. El error aparece en el registro por cada tic.
Gracias por la idea. Si SeriesInfoInteger() no está accediendo a Bars internamente, entonces es cada vez más probable que sea una unión de datos "estrecha" en el servidor del broker.
Y eso también es una respuesta satisfactoria a mi pregunta.
Después de todo, no sé dónde va a aparecer el error, si puedo evitarlo, etc.
Probablemente, es un error del corredor, porque el mensaje borra algunas barras "rotas"... o los datos se "matan" por el camino. Pero, esto es sólo una suposición de mi parte. Por cierto, ¿me da algo GetLastError()? Sí, ¿y qué devuelve Bars()?
Si Bars() devuelve 0, entonces el error 4001 (ERR_INTERNAL_ERROR 4001 Unexpected internal error).
Pero a veces Bars() sigue devolviendo el número de barras y entonces no hay error (Bars() no cambia el estado de error).
MT4 build 722, ME4 build 989
Intentando copiar los datos actuales de la barra cero:
Imprime n=0, es decir, los datos no se copian.
Sise escribe_Period en lugar dePERIOD_CURRENT , funciona.
Si se copian datos de barra distintos de cero (tiempo[1], etc.), funcionará, independientemente de si se escribePERIOD_CURRENT o_Period.
P.D. ¿Lo quieres en un cd?
Si Bars() devuelve 0, entonces el error 4001 (ERR_INTERNAL_ERROR 4001 Unexpected internal error).
Pero a veces Bars() sigue devolviendo el número de barras y entonces no hay error (Bars() no cambia el estado de error).
Lo "inesperado" del error sugiere, una vez más, que algo no tiene tiempo de llegar y se borra, por lo que se produce el error. Según tengo entendido, hay que averiguar el número de barras en D1... ¿Hay que hacerlo en cada tick? Alternativamente, escriba una función que solicite datos una vez por minuto o menos. Y ver si se produce un error.
MT4 build 722, ME4 build 989
Intentando copiar los datos actuales de la barra cero:
Imprime n=0, es decir, los datos no se copian.
Sise escribe_Period en lugar dePERIOD_CURRENT , funciona.
Si se copian datos de barra distintos de cero (tiempo[1], etc.), funcionará, independientemente de si se escribePERIOD_CURRENT o_Period.
P.D. ¿Lo quieres en un cd?
¿Qué hacer? ¿Cómo puedo saber el número de barras en el marco temporal D1?
¿El indicador funciona en D1?
No, claro que no. De eso se trata. Para cuando el propio indicador se ejecuta en D1, tenemos trivialmente"constint rates_total, // tamaño de la serie temporal de entrada".
He aquí un ejemplo concreto de su uso.
Inicializamos un par de indicadores y obtenemos sus manejadores (todo está bien aquí). A continuación, en la función ontik tenemos que asegurarnos de que en el momento de la llamada se han calculado todos los datos en los manejadores necesarios (índices externos). Y esto es lo que hago:
Y en este caso hDayTrand es un manejador recursivo (el mismo indicador, sólo se carga D1).
Parece que todo lo hago según la documentación y los ejemplos del terminal y según las recomendaciones. El resultado es que todo esto se revuelve en el registro y come megabytes por minuto.
No, claro que no. Esta es la cuestión. Para cuando el propio indicador se ejecuta en D1, tenemos trivialmente"constint rates_total, // tamaño de la serie temporal de entrada".
He aquí un ejemplo concreto de su uso.
Inicializamos un par de indicadores y obtenemos sus manejadores (todo está bien aquí). A continuación, en la función ontik debemos asegurarnos de que en el momento de la llamada ya se han calculado todos los datos de los manejadores necesarios (índices externos). Y esto es lo que hago:
Y en este caso hDayTrand es un manejador recursivo (el mismo indicador, sólo se carga D1).
Parece que todo lo hago según la documentación y los ejemplos del terminal y según las recomendaciones. El resultado: todo esto queda garabateado en el registro y consume megabytes por minuto.