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

 
Artyom Trishkin:

No puedo comprobarlo ahora mismo, pero MQL_TESTER parece incluir todo lo demás. Pero todo lo demás por separado no se incluye.

Es decir, para entender que el programa funciona en el probador (en cualquiera de los modos enumerados), sólo hay que comprobar la primera bandera.

El ejemplo se refería a otra cosa.
 
fxsaber:
El ejemplo se refería a otra cosa.
Entonces no lo entendí, ¿de qué se trataba?
 
Artyom Trishkin:
Entonces no entiendo, ¿de qué se trata?
static const es inicializado por una función.
 
fxsaber:
static const es inicializado por una función.
Ahhhh ..., "...Semyon Semyoyonych"... (с)
 
fxsaber:
La const estática es inicializada por una función.

1. ¿En qué parte del programa se encuentra esto?

Supongo que es en el ámbito de las variables globales. Sin mencionar que las variables globales no necesitan modificador estático, la secuencia de inicialización juega un papel muy importante.

Mi nivel de profesionalidad en la programación es mucho menor que el tuyo, por lo que realizo algunos experimentos del nivel que ni siquiera te planteas... Supuestamente.

Así que aquí está la secuencia de inicialización: (para los que no lo conozcan)

Primero, las variables de nivel global, luego las estáticas, dependiendo de la prioridad de las funciones, OnInit(), OnTick() o OnCalculate()... No me interesaba ir más allá, y no me interesaban los locales en mi época. Así que resulta que en este código se llama a la función antes de inicializar las variables estáticas, de ahí el error del que hablamos. La función se llama antes de inicializar la variable stInt.

2. Al principio de esta rama, hablábamos del cierre de órdenes por precio OrderClosePrice(), ¿lo recuerdas? También funciona, pero podemos tener problemas. Lo mismo ocurre en este caso.

Por eso no existe esta función en la ayuda. Para que cuando escribas tu d***-código no te inunden con quejas de que las cosas indicadas en la documentación no funcionan. Sabes cuántos de estos programadores están presentes aquí. ¿Y cuántos programadores inadecuados han sido expulsados de por vida? De nuevo, presumiblemente...

 
Alexey Viktorov:
Aparentemente, usted lee algo entre las palabras de una sola frase

No hay ninguna implicación oculta en esta frase.


En cuanto al ejemplo, funciona de cualquier manera.

 
fxsaber:
Debes haber leído algo entre las palabras de la única frase

No hay ninguna implicación oculta en esta frase.


En cuanto al ejemplo, funciona de cualquier manera.

Bueno, hay un enlace con un ejemplo de código con un error además de su frase. Mi respuesta no era a tu frase, sino a ese código incorrecto, que es exactamente el código g***.

No tengo dudas de que tu ejemplo de código funciona.

 
Alexey Viktorov:

Así que hay un enlace con un ejemplo de código con un error además de su frase.

En el título del hilo aparece la palabra "sutileza". Ese código es una demostración de sutileza.

No veo ninguna razón por la que los desarrolladores no puedan hacer que este código funcione - lo que el autor quería ver. Lo hagan o no, esa es su aplicación a la SD. Pero el propio ejemplo es ilustrativo.

 
fxsaber:

En el título del hilo aparece la palabra "sutileza". Ese código es una demostración de sutileza.

No veo ninguna razón para no dejar que los desarrolladores hagan funcionar ese código, que es lo que el autor quería ver. Lo hagan o no, esa es su aplicación a la SD. Pero el propio ejemplo es ilustrativo.

Empezó a referirse a la sutileza después de nuestro diálogo. Y antes era como un mensaje de error. Sólo que no puede llamarse error de ninguna manera.

¿Tienes alguna sugerencia de cómo cambiar la secuencia de inicialización para que este código funcione como quieres? De alguna manera me parece que esta solicitud se colgará sin ninguna respuesta.

 
Alexey Viktorov:

Empezó a referirse a la sutileza después de nuestro diálogo. Antes de eso, era como un mensaje de error. Sólo que no puedes llamarlo error de ninguna manera.

Si hubiera sido un error, se habría elegido otro hilo. Además, el reenvío ni siquiera se habría producido, ya que la aplicación está colgada en la SD. Es precisamente una sutileza que es útil conocer.

¿Alguna sugerencia sobre cómo cambiar la secuencia de inicialización para que dicho código funcione como se desea? Por alguna razón me parece que esta solicitud quedará sin respuesta.

No es un programador. Supongo que este código funciona en C++.
Razón de la queja: