Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1264
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
En la estructura
ESTRUCTURA_POSICIÓN
La estructura contiene el método
GetCurrentPositionProperty(void)
que calcula y asigna valores a los elementos de la estructura. Definir el cuerpo del método fuera de la estructura. Para ello, utilice la operación de resolución de contexto (::).
En OnTick() llamamos a la función:
void OnTick() { //--- STRUCT_POSITION.GetCurrentPositionProperty(); }
Y aquí obtenemos un error:
'.' - nombre esperado eSower_and_Gather_5.mq5 69 19
No sé dónde ha ido mal, por favor, ayuda.
'.' - nombre esperado eSower_and_Gather_5.mq5 69 19
¿Qué es la línea 69 19? Por favor, publique la línea de código 69 y especifique dónde está la posición 19. Inmediatamente se verá dónde está el error.
¿Qué es la línea 69 19? Contabilice la línea 69 y especifique dónde está la posición 19. Inmediatamente se verá dónde está el error.
STRUCT_POSITION.GetCurrentPositionProperty();
Está resaltado en rojo en el post anterior. Gracias por su pronta respuesta.
¿Qué es la línea 69 19? Contabilice la línea 69 y especifique dónde está la posición 19. Inmediatamente se verá dónde está el error.
Este es un punto que debe dar acceso a una función que a su vez utiliza el contexto de la estructura. Pero no puedo entender por qué no funciona.
está resaltado en rojo en el post anterior. Gracias por su pronta respuesta.
STRUCT_POSITION' es un TIPO DE DATOS. Es necesario crear una variable con este tipo y luego llamar a VARIABLE.GetCurrentPositionProperty();
Este es el punto que debe dar acceso a la función, que a su vez utiliza el contexto de la estructura.Esto es lo que he entendido de los libros de texto. Pero no puedo entender por qué no funciona.
Código: (sólo llamar a una función - función EA, no un método de estructura - que tiene más sentido)
STRUCT_POSITION' es un TIPO DE DATOS. Es necesario crear un objeto con este tipo y luego llamar a OBJECT.GetCurrentPositionProperty();
Lo he probado. Dicho objeto se crea, se declara justo después de la declaración del
StrPositionArray[].
Si lo pones en OnTick
obtenemos un error:
']' - expresión esperada eSower_and_Gather_5.mq5 69 21
Código: (sólo llamar a una función - función EA, no un método de estructura - que tiene más sentido)
¿Así que usar :: fue una idea inútil?
Entonces, ¿por qué escribió la función
dentro de la estructura? Llenaría la estructura sin ningún relleno en su interior, ¿no es así? Por favor, aclárense, estoy confundido, ¿tal vez sea una función obsoleta, debería olvidarme de ella?
¿Así que usar :: fue una pérdida de tiempo?
Entonces, ¿por qué escribir una función
dentro de la estructura??? Es decir, llenará la estructura perfectamente incluso sin ella. Por favor, aclárense, estoy confundido, tal vez sea una idea obsoleta que debería olvidarse.
Copiar y pegar. Queda una línea después del copypaste.
Debería ser así (no hay métodos dentro de la estructura)
Copiar y pegar. Queda una línea después del copypaste.
Debería ser así (no hay métodos dentro de la estructura)
Bueno, he pasado mucho tiempo en la lección. Aunque era para MT4, allí se presentaba como un truco, así que aquí hay un extracto del texto:
La estructura tiene un método Refresh() que calcula y asigna valores a los elementos de la estructura. Vamos a definir el cuerpo del método fuera de la estructura. Para ello, utilice la operación de resolución de contexto (::). El contexto es un descriptor (nombre) de la estructura:
Nótese que en el cuerpo del método nos referimos a los elementos de la estructura sin utilizar un punto, ya que utilizamos la operación de resolución de contexto. Los campos numéricos se ponen a cero mediante ZeroMemory() con la palabra clave this antes de actualizarlos al principio del cuerpo del método, por lo que la estructura pasa una referencia a sí misma.
El código principal de EA dentro del manejador OnTick() ahora se verá así