Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 913

 
psyman:


¿Cómo puedo asegurarme de que los datos se cargan?

He leído la ayuda "Organizar el acceso a los datos", pero me pregunto si hay una forma sencilla de asegurarse.

https://www.mql5.com/ru/code/1251

hay este código en la ayuda de mt5

¿Qué quiere decir con "una manera fácil"? - ...¿Es sólo una forma de comprobar si los datos fueron cargados por la mente? ))) - O bien escribes todo tú mismo desde cero o utilizas las soluciones ya preparadas de otra persona, tanto el primer caso como el segundo requiere tiempo - ya sea para escribir y desarrollar tu propio código o para tratar con la solución de otra persona, lo que es más fácil - tu elección

 
Igor Makanu:

https://www.mql5.com/ru/code/1251

este código está en la ayuda de mt5

¿a qué te refieres con la forma fácil? - por la fuerza de la mente? ))) - O bien escribes todo tú mismo desde cero o utilizas la solución de otro, en ambos casos se necesita tiempo - ya sea para escribir y desarrollar tu propio código o para tratar con la solución de otro, lo que es más fácil - tu elección

Gracias por el enlace, la biblioteca es un camino fácil :-)

Es cierto, he leído comentarios que dicen que se congela en algunos casos.

Por lo que tengo entendido, la canalización asíncrona para una copia de un indicador es imposible. ¿Debo esperar a que maneje sucesivamente toda la cola para cada símbolo?

 
psyman:

Gracias por el enlace, la biblioteca es el camino más fácil :-)

Es cierto que los comentarios dicen que se cuelga en algunos casos.

Por lo que entiendo, la descarga asíncrona para una copia de un indicador es imposible, debo esperar a que recupere sucesivamente toda la cola para cada símbolo?

La biblioteca no se congela

sólo se puede descargar el historial en los Asesores Expertos, la Ayuda dice que no se puede utilizar en los indicadores

indicadores, de nuevo, ejemplos en KB o en los artículos, busque multisímbolo o multimoneda

 

Hay cosas interesantes en Mql4. He aquí un ejemplo. Supongamos que existe una función.

ArrayResize()

¿Tiene tipo int pero puede ser llamada como una función procedimental (void) sin devolver un valor? Es interesante.

 

Hola. ¿Pueden aconsejarme cómo solucionarlo?

En la demo, el Asesor Experto no abre todas las órdenes, da el error 129 (precio erróneo), aunque he especificado Ask/Bid en OrderSend, el deslizamiento es con reserva. Me he dado cuenta de que cuando borro el Asesor Experto, el terminal se cuelga durante 10 segundos y muestra en el registro

En el probador, no hay errores ni contratiempos

Archivos adjuntos:
 
Igor Makanu:

la biblioteca no se congela

la descarga del historial sólo es posible en los Asesores Expertos, el archivo de ayuda dice que no se debe utilizar en los indicadores

indicadores, de nuevo, ejemplos en KB o en artículos, busque multisímbolo o multimoneda


Aquí el autor ha puesto la inicialización de los arrays en una biblioteca aparte, ¿qué sentido tiene?

Функции для инициализации массивов расположим в подключаемом файле InitArrays.mqh
 
psyman:


El autor ha puesto la inicialización de los arrays en una biblioteca aparte, ¿qué sentido tiene eso?

No sé, el artículo es de 2013, quizás antes había que hacer como el autor del artículo, el ejemplo de KB (también está en la ayuda) funciona en EAs y scripts sin problemas, yo mismo lo uso - no he notado ningún problema

Si necesito escribir un indicador que reciba datos de otro marco temporal o símbolo, lo encontraré en los ejemplos del autor

 
He aquí una pregunta. Recibí 200 barras en mi gráfico. iBars() devolvió 200 (201 barras si no considero 0), borré 5 barras de la parte derecha del archivo y elnúmero de barras fue 195 (iBars() devolvió 195 barras), el gráfico se acortó y luego habilité la conexión y estas 5 barras aparecieron en el gráfico y en el archivo de cotizaciones. Me he dado cuenta de que cuando lo hago incrementa el número de compases de uno en uno y no carga 5 a la vez, es muy extraño, si me salto una sección muy grande contará un compás cada vez, así que tengo que hacer comprobaciones a la izquierda. ¿Cómo funciona la función iBars(), devuelve todas las barras a la vez cuando hay una conexión o funciona de alguna otra manera?
 
Seric29:
He aquí una pregunta. Recibí 200 barras en mi gráfico. iBars() devolvió 200 (201 barras si no considero 0), borré 5 barras de la parte derecha del archivo y el número de barras fue 195 (iBars() devolvió 195 barras), el gráfico se acortó y luego habilité la conexión y estas 5 barras aparecieron en el gráfico y en el archivo de cotizaciones. Me he dado cuenta de que cuando lo hago incrementa el número de compases de uno en uno y no carga 5 a la vez, es muy extraño, si me salto una sección muy grande contará un compás cada vez, así que tengo que hacer comprobaciones a la izquierda. ¿Cómo funciona la función iBars(), devuelve todas las barras a la vez cuando hay una conexión o funciona de alguna otra manera?

Se recuperan los datos que faltan de forma incremental hasta que todo el entorno está totalmente sincronizado. En cuanto una barra está totalmente cargada, el valor del número de barras ha aumentado. No obtendrá inmediatamente el número de compases que le faltan, sólo se devolverá el número de datos totalmente sincronizados.

 
Artyom Trishkin:

Se produce una carga gradual de los datos que faltan hasta que todo el entorno está totalmente sincronizado. En cuanto una barra se ha cargado completamente, el número de barras se incrementa. No se le devolverá inmediatamente el número de barras que le faltan, sólo se le devolverá el número de datos totalmente sincronizados.

Ya veo, sólo estoy calculando para las alimentaciones de barras agudas, pensé que funcionaba uno a uno: por ejemplo, faltan 5 barras, se enciende la red, carga los datos y pasa el tiempo necesario, y luego el número de barras es devuelto poriBars() con una posible diferencia de más de uno. Por ello, los desarrolladores han previsto alimentar las barras una a una, lo que simplifica la escritura del código, pero en caso de que se pierdan grandes secciones creará un trabajo innecesario para el robot. Así que en todos los casos, pase lo que pase, irá cargando las barras de una en una, 195, 196, 197, 198, 199, 200. ¿Este mecanismo es fiable o se puede congelar o puede pasar algo que en lugar de cargar un segmento a la vez cargue todo el segmento?

Razón de la queja: