Por favor, explique qué puede estar mal en esta función. - página 7

 

Este enlace dice

Механизм обращения к серверу за данными не зависит от того, каким образом был инициирован запрос — пользователем при навигации по графику или программным способом на языке MQL5.


¿aparentemente se trata de los datos más antiguos, y los datos más recientes deben obtenerse simplemente porque el gráfico del instrumento está abierto? ¿O no?

¿Cuál es la diferencia en la obtención de datos mediante distintas funciones?

 
Slawa:
¿Ha leído en su totalidad la documentación sobre la organización del acceso a los datos?

Slava, ¿has mirado mi solicitud?

MQL5: error #4806
Abierto, Iniciado: 2016.02.15 11:22, #1409574

El mantenimiento de la caché a través de los indicadores no funciona.

Ejecutar el EA adjunto, después de un tiempo se obtiene un error en los registros.

 
Andrey Khatimlianskii:

Slava, ¿has mirado mi solicitud?

El mantenimiento de la caché a través de los indicadores no funciona.

Ejecutar el EA adjunto, obtener un error en los registros después de un tiempo.

Sí, lo hice. Pero no encontré ningún EA allí.

Lo he comprobado con mi EA. Repito: la presencia de cualquier manejador de indicadores (en mi caso iMA) impide la descarga de la caché histórica.

Vamos a enviar su EA aquí (y puede hacerlo en la aplicación anterior) - Voy a ejecutar en diferentes terminales. Veamos

 
Alexey Viktorov:

Dimitri, ¿no es extraño? Hay un nuevo bar, pero no lo contaremos todavía.

Escucha, ¿no es la causa de tal comportamiento SeriesInfoInteger(_Symbol, PERIOD_D1, SERIES_LASTBAR_DATE);? Apareció una nueva barra, el código de la garrapata está disponible y se ejecuta, pero el tiempo aún no se tiene en cuenta?

En términos de uso del tiempo - correcto. Se acepta que el límite superior del rango de tiempo especificado no se aplica. Pero en este caso es un inconveniente, sí.

SobreSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE), no lo sé, no lo había usado y probablemente no lo use, si necesito el tiempo de la barra, usaré CopyTime() o CopyRates().

Los desarrolladores deberían hacer un análogo de iBarShift(), reescribir un poco Bars() y funcionaría.

 
Slawa:

Sí, lo hice. Pero no encontré ningún concejal allí.

Lo he comprobado con mi EA. Repito: la presencia de cualquier manejador de indicadores (en mi caso iMA) impide la descarga de la caché histórica.

Dé su EA aquí (o puede hacerlo en la aplicación anterior) - lo ejecutaré en diferentes terminales. Veamos

El Asesor Experto se adjuntó en el primer post (zip, 58,91 KB). ¿No tienes archivos almacenados en ningún sitio?

Construyó la versión donde todo comenzó y la adjuntó. Pruébalo. Las condiciones de prueba y el archivo de configuración también están ahí.

 
Dmitry Fedoseev:

En términos de uso del tiempo, correcto. Se acepta que el límite superior del tiempo especificado no se aplica a la gama. Pero en este caso es un inconveniente, sí.

SobreSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE); no sé, no había usado y probablemente no usaré, si necesito tiempo de barra, usaré CopyTime() o CopyRates().

Los desarrolladores deberían hacer un análogo de iBarShift(), reescribir un poco Bars() y funcionaría.

¿Aceptado en otros lenguajes de programación?

Bueno, llegar al límite superior del rango es la mitad del problema. Lo que tú llamas "un inconveniente", yo lo llamo una estupidez a la que quizás te acostumbres y te plantees utilizar en tus programas.

Simplemente encontré un comportamiento inadecuado de la función, y no hay otro nombre para ella, así que traté de explicárselo a los desarrolladores. Pero en lugar de tratar de entender lo que estaba pasando ... eso es todo... silencio. Nadie lo necesita.

Yo también ya dejé de usar esta función y la sustituí por CopyRates() solo por inercia seguí explicando, probablemente porque el baterista renombró el tema para que yo pidiera una pista, y no reportara un problema en mql5.

 
Andrey Khatimlianskii:

El asesor se adjuntó en el primer post (zip, 58,91 KB). ¿No tienes archivos almacenados en ningún sitio?

He montado la versión donde empezó todo y la he adjuntado. Pruébalo. Las condiciones de la prueba y el archivo de configuración también están ahí.

Ayer tuve mucho trabajo. Resulta que hay una fuente comprimida del Asesor Experto en el primer post. Eso es lo que estoy usando.
 
Alexey Viktorov:

Tras descubrir simplemente el comportamiento inadecuado de la función, que es la única forma de describirlo, intenté explicárselo a los desarrolladores. Pero en lugar de tratar de entender lo que está pasando... eso es todo... silencio. Nadie lo necesita.


¿Dónde ve usted un comportamiento inadecuado de la función? ¿Has leído bien la documentación?

SeriesInfoInteger

Devuelve información sobre el estado de los datos históricos.

Devuelve información sobre el estado de los datos históricos. No actualiza la información, no inicia la paginación de datos. Sólo devuelve lo que hay actualmente

 
Slawa:

¿Dónde ve usted el comportamiento inadecuado de la función? ¿Has leído bien la documentación?

Devuelve información sobre el estado de los datos históricos. No actualiza la información, no inicia la paginación de datos. Sólo devuelve lo que hay actualmente

Si no te importa, entra en https://www.mql5.com/ru/forum/89213/page6#comment_2605980, allí está todo.

SERIES_LASTBAR_DATE Hora de la última barra abierta por el símbolo-período. Pero cuando aparece una nueva barra pero la función la ve o no la ve, ¿cómo se llama? Culturalmente hablando, se llama "funcionamiento INSTABLE de la función", o simplemente comportamiento inadecuado...

En segundo lugar, no deberías haber dicho tonterías en las primeras respuestas a mi solicitud a la SD.

 
Alexey Viktorov:

SERIES_LASTBAR_DATE Hora de apertura de la última barra por carácter de punto. Cuando aparece una nueva barra pero la función la ve y no la ve, ¿cómo se llama? En términos culturales, el "funcionamiento INSTABLE de la función", o simplemente su comportamiento inadecuado...


Si los datos históricos correspondientes se descargaron por tiempo de espera, ¿qué debería devolver la función SeriesInfoInteger con la petición SERIES_LASTBAR_DATE?

¿Y quién comprobará el resultado de GetLastError()?

Su petición a servicedesk se llama "Una condición extraña si no se cumple". (¡¡¡Santo cielo!!! ¡¡El SI NO FUNCIONA!!) Y eras tú el que decía tonterías en esa petición. Lo tienes todo mezclado ahí. Vuelva a leer su solicitud con más calma, a través de los ojos de una persona ajena.

Y no hay necesidad de atacar: este es un foro técnico, y los argumentos deben ser preparados de manera competente.

Razón de la queja: