Servicedesk. Quejas, sugerencias. - página 7

 
Ilya Malev:
Acabo de encontrar su problema ya en MT5 en un indicador, sin salir de un bucle OnTimer, compruebo la serie de tiempo en otro símbolo/período (no el actual) - la función me dice que se construye y da el número correcto de barras. Inmediatamente después llamo a otra función para construir el indicador - dentro de esta función, llamada desde la misma llamada de OnTimer, las timeseries logran ser descargadas y el SeriesInfoInteger devuelve ceros. Tuve que incrustar una comprobación cíclica adicional, para que todo se construya por sí mismo sin ticks entrantes.

¿Cuál es la construcción del terminal MT5? Mikhail escribió que MT5 build 1200 debería estar bien:

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Servicio de atención al cliente. Quejas, sugerencias.

Mikhail, 2015.10.29 17:46

Hace tiempo que planteé el problema de los datos de los indicadores.

https://www.mql5.com/ru/forum/42180

Me han asegurado que el problema se ha resuelto.

Incluso escribieron sobre ello en el resumen del comunicado de 1200

17: Terminal: Se ha corregido un error que provocaba que los datos históricos se descargaran como no utilizados, a pesar de los accesos regulares a los datos desde los programas MQL5.

Y si la compilación es nueva, pero el error persiste - ¡acude a servicedesk con pruebas!

 
Alexey Kozitsyn:

¿Cuál es la construcción del terminal MT5? Mikhail escribió que MT5 build 1200 debería estar bien:

Si la compilación es nueva y el error sigue existiendo, acuda al servicio de asistencia técnica con una prueba.

La construcción es la misma que la del 1200/64. Para reproducir el error, necesito simular la situación que tuve en un producto bastante complejo, que no puedo enviar al escritorio. Lo haré tan pronto como esté libre del trabajo por un tiempo.
 

El iniciador del tema recibió consejos sobre su problema en la primera respuesta, que él, el iniciador del tema, ignoró.

Stanislav Starikov| 10.29 12:41

Para obtener datos reales del período de símbolos de otra persona, es necesario acceder a estos datos con más frecuencia que una vez cada 10 segundos. O acceder a estos datos desde el Asesor Experto, por ejemplo, utilizando iTime (entonces se puede acceder a los datos al menos una vez cada 3 minutos)


El iniciador del tema obviamente vio este consejo ya que hay algo de código comentado en su indicador que presentó aquí

         //if( bars_count == 0 || firstDate == 0 || serv_firstDate == 0 )
         //     {
         //      Print( "Подкачка iTime()" );
         //      datetime tm = iTime( _Symbol, period, 0 );
         //     }

Si inserta la llamada incondicional iTime(_Symbol,period,0) en OnInit y al principio de OnCalculate, no tendrá los problemas descritos anteriormente

El SeriesInfoInteger simplemente recoge la información ya existente sin llamar al intercambio de datos, y eso es lógico.

 
Slawa:

El iniciador del tema recibió consejos sobre su problema en la primera respuesta, que él, el iniciador del tema, ignoró.

Stanislav Starikov| 10.29 12:41

Para obtener datos reales del período de símbolos de otra persona, es necesario acceder a estos datos con más frecuencia que una vez cada 10 segundos. O acceder a estos datos desde el Asesor Experto, por ejemplo, utilizando iTime (entonces se puede acceder a los datos al menos una vez cada 3 minutos)


El iniciador del tema obviamente vio este consejo ya que hay algo de código comentado en su indicador que presentó aquí

Si inserta la llamada incondicional iTime(_Symbol,period,0) en OnInit y al principio de OnCalculate, no tendrá los problemas descritos anteriormente

El SeriesInfoInteger simplemente recoge la información ya existente sin llamar al intercambio de datos, y eso es lógico.

Vyacheslav, ¿a quién te diriges ahora? ¿Yo? ¿O a Ilya?

Si te diriges a Ilya, él ya está hablando de mql5. Por favor, lee atentamente antes de responder. Ya le he dicho más de una vez que se apresura a responder sin entrar en detalles.

He visto tus consejos, el código comentado lo confirma, gracias, me ha servido de ayuda. Como Renat ha dicho que la descarga agresiva de datos se arreglará, no hace falta seguir discutiendo sobre mql4.

Pero si la misma situación continúa en mql5, aunque debería solucionarse a partir de la build 1200, ¿qué hacer?

Una vez más, si ustedes (los desarrolladores) no van a cambiar nada en mql4, añadan a la documentación que SeriesInfoInteger() sólo recoge la información existente, ¡y ya está! Todas las preguntas desaparecerán, ¡o simplemente puedes meter las narices en la documentación!

 
Alexey Kozitsyn:

Vyacheslav, ¿con quién estás hablando ahora? ¿Yo? ¿O a Ilya?

Dado que se mencionó iTime, es obvio que se trata de MT4. Todavía no he dado un ejemplo de código específico para responderme.
 
Ilya Malev:
Dado que se mencionó iTime, es evidente que se trata de MT4. Todavía no he dado un ejemplo de código específico para responderme.
Lo entendí, pero es más probable que se haya dirigido a ti. Pero usted escribió sobre el error en mql5.
 
Alexey Kozitsyn:
Lo entendí, pero probablemente también iba dirigido a ti. Pero usted escribió sobre el error en mql5.
No soy el iniciador del tema :)
 
Ilya Malev:
No soy el iniciador del tema :)
Sí, pero el post era como explicarte lo que yo, en opinión de Vyacheslav, no entendía.
 
Alexey Kozitsyn:
Sí, pero el post fue como explicarte lo que yo, según Vyacheslav, no capté.

Creo que esa es la forma de hablarte :)

Volveré sobre mi problema y proporcionaré un código de verificación. A menos que se haya arreglado algo en la versión 1210. Hasta ahora he hecho una revisión cíclica y he seguido adelante, no hay tiempo para detenerse.

 
Ilya Malev:
Escribe entonces el resultado de tus experimentos con el historial en MT4)

Comenzó a experimentar con la carga del historial desde cero. Es decir, borro todo el historial por símbolo y arranco el terminal. Configuración del terminal de barras máximas en la ventana = 5000.

Si se utiliza un script similar al de Data Access Organization en MT5, se puede ver que el historial se carga hasta el número máximo de barras o hasta la última fecha en el servidor.

Utilizando un esquema similar en MT4 los datos no se cargan. Es decir, inicialmente están disponibles aproximadamente 2050, y para obtener más historial hay que desplazarse por el gráfico hasta la profundidad del mismo.

También me di cuenta de una peculiaridad. Al desplazarse, si se cargan nuevas barras, prev_calculado se pone a 0 (funciona como el botón "refrescar").

Estimados desarrolladores. Por favor, comenten si hay alguna forma de intercambiar el historial sin usar el desplazamiento del gráfico (¡MT4!).

Razón de la queja: