Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 94
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
Esto es lo que pasa cuando se llama a una función dentro de una clase: cómo privado: público:, cómo pasar datos a la clase y cómo obtener un resultado de la clase. Hasta ahora, esto es todo.
Dentro de la clase, el resultado tiene que ser calculado de alguna manera. ¿Y cómo entenderá la clase sin tu participación que necesita devolver el resultado ahora, pero no en otro momento?
Por lo tanto, necesitas un método dentro de la clase que pueda ser llamado desde fuera. Así que debe ser público.
Aunque por supuesto puedes hacer un método privado que lea todos los datos dentro de la clase y los escriba en la variable de la clase, y el método público llamará al método privado. Pero algún método debe ser llamado de todas formas. Y lo que se contará allí en el método privado, cuán complejos serán los cálculos y qué variables estarán involucradas en los cálculos - todo depende de usted, y bajo su propia responsabilidad.
Esa es la cuestión, cómo llamar a una función dentro de una clase, es decir, cómo private: public:, cómo pasar datos a una clase y cómo obtener el resultado de la clase. De momento, ¡aquí está!
#property strict
#property script_show_inputs
//--- input parameters
input int inputA=1;
input int inputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
public:
int Add(int a,int b)
{
Print(__FUNCTION__,": Результат сложения: a",a," + b",b," = ",a+b);
return(a+b);
}
} ar;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
ar.Add( inputA, inputB );
}
//+------------------------------------------------------------------+
Creo que debería funcionar, no lo he comprobado para ver si es correcto)
Aquí tienes, gracias, ya estoy empezando a moverme -
el guión:
ASD ar;
void OnStart()
{
ar.fg (3,5);
ar.sf ();
}
clase:
{
private:
int d;
int g (int a_s,int a_d){d=a_s+a_d;return (d=a_s+a_d); }
public:
void fg (int a_s,int a_d) { g (a_s,a_d); }
void sf () {Alert (d);}
};
La alerta da un resultado de 8, pero es una alerta de la clase, y ahora necesito una alerta del script
Aquí tienes, gracias, ya estoy empezando a moverme -
el guión:
ASD ar;
void OnStart()
{
ar.fg (3,5);
ar.sf ();
}
clase:
{
private:
int d;
int g (int a_s,int a_d){d=a_s+a_d;return (d=a_s+a_d); }
public:
void fg (int a_s,int a_d) { g (a_s,a_d); }
void sf () {Alert (d);}
};
La alerta da un resultado de 8, pero es una alerta de la clase, y ahora necesito una alerta del script
Ok, declaras el método Alert() en la clase y lo llamas ar.Alert(), aunque ahora el método sf() hace lo mismo. No estoy muy seguro de lo que quieres ver después de haber escrito un valor en el campo d.
Parece que debería funcionar, aún no lo he comprobado)
¡Todos! ¡Muchas gracias! Lo tengo -
guión:
ASD ar;
void OnStart()
{
ar.fg (3,5);
Alert ( ar.sf ());
}
clase:
{
private:
int d;
int g (int a_s,int a_d) {return (d=a_s+a_d); }
public:
void fg (int a_s,int a_d) { g (a_s,a_d); }
int sf () {return (d);}
};
¡Lo masticaré!
No recuerdo quién me escribió en este hilo que el probador está roto, pero puedo responder que bien podría estar roto. Se traga diferentes trozos de tiempo o empieza a contar desde un segmento arbitrario (aunque todas las comillas están ahí).
Creo que quien necesita ver lo entenderá.
?
(devuelve un número redondeado a un múltiplo de un valor dado)
o cómo redondear, por ejemplo, 2285,13 para que sea un múltiplo de (0,25) 2285,00 __ 2285,25 ___ 2285,50 ___ 2285,75
¿cómo puedo saber el apalancamiento de un par y no de una cuenta?
La cantidad de apalancamiento proporcionada: