Características del lenguaje mql4, sutilezas y técnicas - página 32

 
Andrey Khatimlianskii:

Si el ciclo de 500 barras y la comparación de sus valores con los almacenados tuviera que hacerse muchas veces, y fuera más largo que calcular el hash en el mismo ciclo y compararlo con el almacenado, entonces tendría sentido.
Pero esto no es así.

¿Por qué tardas tanto en contar que te das cuenta de la rara ocurrencia del reinicio de prev_calculado?

El Asesor Experto llama al indicador cada minuto y comprueba las novedades, si se nota prev_calculated=0, es un recálculo completo, quizás no sea tan largo, pero aun así. Por ejemplo, el par USDCNH no es tan raro en el restablecimiento de mi corredor.
El tiempo de reinicio (prev_calculated=0):


P.D. Incluso tengo curiosidad por saber qué vela cambia si la barra máxima en el historial/gráfico se establece en 2000/2000 en el terminal.
 
Nauris Zukas:

P.D. Incluso me pregunto qué vela cambia si la barra máxima del terminal en el historial/gráfico se establece en 2000/2000.

crear un indicador con 4 buffers de indicadores que almacenen OHLC - llenarlo cuando se ejecute el indicador por primera vez

cuando prev_calculated=0 escribir en el archivo de registro donde hay una discrepancia entreOHLC y buffers y luego sincronizar los buffers indicadores con el nuevoOHLC

HH: en principio, no tiene sentido rellenar los buffers en el primer inicio del indicador - se puede hacer también en prev_calculated=0

 
Nauris Zukas:

El Asesor Experto llama al indicador cada minuto y comprueba qué hay de nuevo, si se ve prev_calculated=0, entonces hay un recálculo completo, puede que no tarde mucho en contar pero aún así. Por ejemplo, el par USDCNH no es raro en el restablecimiento de mi corredor.
Tiempo de reposición (prev_calculado=0):


P.D. Incluso me pregunto qué vela cambia si la barra máxima en el historial/gráfico se establece en 2000/2000 en el terminal.

Apenas un cambio de bar. Es más probable que se trate de un servicio.

No veo el sentido de molestarse en ello en absoluto.

 
Andrey Khatimlianskii:

Más bien algo oficial.

No lo sabía. Entonces no tiene sentido molestarse en hacerlo. Sólo hay que leer en el manual "Si desde la última llamada de OnCalculate() los datos de los precios han cambiado (se ha bombeado un historial más profundo o se han rellenado los huecos del historial), el valor del parámetro de entrada prev_calculado será puesto a cero por el propio terminal".

 
Igor Makanu:

escribir un indicador con 4 memorias intermedias de indicadores que almacenen OHLC - llenarlo en el primer inicio del indicador

Cuando prev_calculated=0 se escribe en el registro donde hay una discrepancia entreOHLC y los buffers y luego se sincronizan los buffers indicadores con el nuevoOHLC

HH: en principio, no tiene sentido rellenar los búferes de los indicadores a la primera ocurrencia - puede hacerlo a prev_calculated=0

Sí gracias, por el interés voy a hacer un indicador separado, comprobar si las velas están cambiando o hay algo de servicio.

 
OrderModify TP y SL falla en un par (HSI50), todos los demás pares están bien en DC. Manualmente todo cambia, pero en cuanto se intenta la OrderModify, no hay manera, incluso TP y SL no se pueden eliminar de la OrderModify. El error muestra un precio no válido (129). Obviamente, OrderModify está prohibido allí (no sé por qué).
Pregunta, ¿alguien ha comprobado la existencia de OrderModify? ¿Cómo comprobarlo?
P.D. El pliego de condiciones del contrato es HSI50 (Full acces.)
 
Buenos días!
En un corredor MarketInfo() constantemente (una o dos veces al día) vuela, obtiene el valor 0 ( específicamente MODE_MARGINREQUIRED). Es algo normal, pero al mismo tiempo no se intenta llegar al indicador iCustom() (conectado a través de un recurso). Incluso después de que MarketInfo() reciba datos, iCustom() permanece en silencio. Sólo el reinicio del terminal ayuda. ¿Cómo acceder al indicador sin reiniciar el terminal, alguna idea? ¿Puede desaparecer el indicador de algún recurso?
 
Nauris Zukas:
Buenos días!
Un corredor constantemente (una o dos veces al día) MarketInfo() vuela, obtiene el valor 0 ( MODE_MARGINREQUIRED específicamente). Es algo normal, pero al mismo tiempo no se intenta llegar al indicador iCustom() (conectado a través de un recurso). Incluso después de que MarketInfo() reciba datos, iCustom() permanece en silencio. Sólo el reinicio del terminal ayuda. ¿Cómo acceder al indicador sin reiniciar el terminal, alguna idea? ¿Puede desaparecer el indicador de algún recurso?

Esa es la pregunta a la que me gustaría que se respondiera.

 
¿Es técnicamente posible averiguar si el corredor está trabajando en modo normal o FIFO sin abrir operaciones? He buscado en toda la documentación y no he encontrado dicho parámetro. Si es un tipo de cuenta de compensación, la cobertura está desactivada.
 
Hola!

No recuerdo haber encontrado "array out of range" para Time[1], pero este hecho ocurrió en EA. ¿Hace algún tipo de comprobación de "array fuera de rango" para las variables de array predefinidas-Timeseries?
Razón de la queja: