[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 667
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Amigos, no puedo entender por qué no funciona:
Si se encuentra una posición con la magia 5100 en el bucle, el bucle debe pasar a una nueva iteración:
... Pero esto no sucede y la posición seleccionada con un número mágico de 5100 comienza a participar en los cálculos posteriores como la más perdedora...
Este es el cierre... Y entonces, en consecuencia, se coloca otro de bloqueo...
Ayúdame a entender dónde está escondido el perro...
Hasta ahora, he trabajado con funciones simples que producen un único valor de salida.
¿Puede la función dar salida a los valores de varias variables? Por ejemplo: Hora_1, Alta_1, Baja_1, Hora_2, Alta_2, Baja_2.
Gracias.
¿Puede una función dar salida a los valores de varias variables?
Una función sólo puede devolver un parámetro, pero nadie prohíbe que una función trabaje con variables declaradas fuera de la función start()(variables globales).
La función sólo puede devolver un parámetro, pero nadie prohíbe que la función trabaje con variables declaradas fuera de la función start() (variables globales).
Tomemos un ejemplo sencillo - si [MA_1>=Ma_2], debería devolver los valores Tiempo_1, Alto_1, Bajo_1
para la barra en la que se produjo el cruce. Este módulo en start() es
¿verdad?
Pero hay que tener en cuenta que los valores de dichas variables son relevantes hasta que se llame de nuevo a la función. por lo tanto, las variables deben utilizarse INMEDIATAMENTE después de llamar a la función. entonces las variables contendrán los valores calculados para ESTA llamada a la función.
Pero hay que tener en cuenta que los valores de dichas variables son relevantes hasta que se llame de nuevo a la función. por lo tanto, las variables deben utilizarse INMEDIATAMENTE después de llamar a la función. entonces las variables contendrán los valores calculados para ESTA llamada a la función.
Sí, es comprensible. Gracias.
Hasta ahora, he trabajado con funciones simples que producen un único valor de salida.
¿Puede la función dar salida a los valores de varias variables? Por ejemplo: Hora_1, Alta_1, Baja_1, Hora_2, Alta_2, Baja_2.
¿Y qué le impide utilizar el paso de parámetros por referencia en lugar de por valor en la declaración de la función? Ejemplo (Fundamentos del lenguaje/Variables/Parámetros formales):
Es posible pasar parámetros por referencia. En este caso, la modificación de dichos parámetros afectará a las variables correspondientes en la función llamada pasada por referencia. No se pueden pasar elementos de arrays por referencia. Los parámetros pueden ser pasados por referencia sólo dentro de los límites de un único módulo, tal oportunidad no se proporciona para las funciones de la biblioteca. Para especificar que un parámetro se pasa por referencia, se debe colocar el modificador & después del tipo de datos.
Ejemplo:
Los arrays también se pueden pasar por referencia, todos los cambios se reflejarán en el array original. A diferencia de los parámetros simples, las matrices también pueden pasarse por referencia a las funciones de la biblioteca.
¿Y qué le impide utilizar el paso de parámetros por referencia en lugar de por valor en la declaración de la función? Ejemplo (Fundamentos del lenguaje/Variables/Parámetros formales):
Observe que la función func() es de tipo void, pero su ejecución modificará los tres parámetros declarados fuera de ella, ya que los tres están provistos del modificador &. Incluyendo, por cierto, la matriz z[] cambia completamente.¡Muchas gracias!
¡Cómo hacer así! Si la última operación no fue rentable, deberíamos cambiar el lote, si no, no).
Por ejemplo, así
Se incrementa en el paso fijado por la CC. Aunque las variantes pueden ser diferentes
dLots - tamaño de posición por defecto