Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1072

 
Buenas tardes, pregunta de 5 kopeck)) ¿Puede decirme qué significa el signo "&" al pasar a una función? Ejemplo: int determineSection_D1(int & askSection_D1,int & bidSection_D1) ? Gracias.
 
rabanik:    Bien... en una moneda de diez centavos ... ¿qué significa ... "&" alpasar a una función?

Haga clic con el botón izquierdo del ratón en la imagen para ampliarla o haga clic con el botón derecho y guárdela

El MetaEditor tiene ayuda para el lenguaje MQL-4. Tiene sentido leer toda la ayuda o al menos recorrerla

 

Buenas tardes.

He hecho un botón en la pantalla y quiero adjuntarle la apertura de un gráfico sin conexión. ¿Qué función puedo utilizar para especificar la ruta de acceso al gráfico fuera de línea deseado?

 
Buenas tardes, ¿cómo podemos hacer que el gráfico se actualice automáticamente cada 10 segundos para no tener que pulsar el botón "Actualizar" cada vez?
 
zert: actualización del diagrama
voidOnTimer() // En el temporizador WindowRedraw(); // Volver a dibujar la ventana
 
LRA:
voidOnTimer() // En el temporizador WindowRedraw(); // Volver a dibujar la ventana
No entiendo dónde se escribe todo, ¿me lo puedes mostrar en una captura de pantalla?
 
zert:   dónde escribir
insertar en el EA que está utilizando. Si no lo hay, hay que escribir uno. ¿Por qué un nuevo apodo?
 
LRA:

Haga clic con el botón izquierdo del ratón en la imagen para ampliarla o haga clic con el botón derecho y guárdela

El MetaEditor tiene ayuda para el lenguaje MQL-4. Tiene sentido leerlo todo, o al menos ojearlo

Gracias por la respuesta. No lo entiendo hasta el final. Por ejemplo, tengo la función SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) con parámetros. Además, si, por ejemplo, en el código trato de hacer referencia a ella en cualquier condición, obtengo el error "parámetro pasado como referencia, variable".

Por favor, aconséjeme qué hacer. Gracias.

 
rabanik:    si vas a .... error "parámetro pasado como referencia, variable".

Si el parámetro es sin & transferencia por valor, que es más fiable. El parámetro real se copia y se pasa una copia a la función. Los cambios realizados en el parámetro dentro de la función permanecen dentro de la función. El parámetro real en el lugar de la llamada a la función no se modifica. Y no importa para la función si se le pasa una constante o una variable, porque en cualquier caso sólo llega a la función una copia del parámetro. Esto se hace para aumentar la fiabilidad, para proteger las variables de cambios accidentales dentro de una función.

Cuando se pasa el parámetro por referencia, se especifica el símbolo & y significa que la referencia, la dirección de la propia variable, se pasa a la función. Y la función puede cambiar esta variable y estos cambios afectarán al valor de la variable dentro de la función que ha llamado a esta función. Pues bien, para que una función cambie el valor de un parámetro, éste debe ser una variable, lo más probable es que el Traductor haya escrito: parámetro pasado como referencia, variable esperada = parámetro por referencia debe ser una variable

En caso de duda de nuevo, tengo la función SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) en su lugar mejor escribir como se llamó la función. Parece que pasas un número como primer parámetro, lo que no tiene sentido. En este parámetro, su función intenta devolver el número con el que se ha colocado la orden en la base de datos del corredor. Está claro que esto debería ser una variable. En caso de duda, eche un vistazo a la función. Y la función es TRUE para cambiar el número que se pasa, quiere una variable en ese lugar.

 

¿No sería más fácil de entender con un ejemplo?

void OnStart()
{
 int a = 5;
 int b = 7;
 int c = f(a, b);
 Print("a = ", a, ": b = ", b": c = ", c);
}

int f(int k, int n)
{
 k += 2;
 return(k+n);
}

//результат a = 5: b = 7: с = 14

La otra opción

void OnStart()
{
 int a = 5;
 int b = 7;
 int c = f(a, b);
 Print("a = ", a, ": b = ", b": c = ", c);
}

int f(int &k, int n)
{
 k += 2;
 return(k+n);
}

//результат a = 7: b = 7: с = 14

esta es la diferencia.