Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 94
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ecco come chiamare una funzione all'interno di una classe: come privato: pubblico:, come passare dati alla classe e come ottenere un risultato dalla classe. Finora questo è tutto!
All'interno della classe, il risultato deve essere calcolato in qualche modo. E come farà la classe senza il vostro coinvolgimento a capire che ha bisogno di restituire il risultato ora, ma non in un altro momento?
Quindi, avete bisogno di un metodo all'interno della classe che possa essere chiamato dall'esterno. Quindi deve essere pubblico.
Anche se naturalmente si può fare un metodo privato che leggerà tutti i dati all'interno della classe e li scriverà nella variabile di classe, e il metodo pubblico chiamerà il metodo privato. Ma qualche metodo deve essere chiamato comunque. E cosa sarà contato lì nel metodo privato, quanto saranno complessi i calcoli, e quali variabili saranno coinvolte nei calcoli - tutto dipende da voi, e sotto la vostra responsabilità.
Questo è il punto, come chiamare una funzione all'interno di una classe, cioè come privato: pubblico:, come passare dati a una classe e come ottenere il risultato dalla classe. Finora, eccolo qui!
#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 );
}
//+------------------------------------------------------------------+
Penso che dovrebbe funzionare, non l'ho controllato per vedere se è corretto)
Ecco a voi, grazie, sto già iniziando a muovermi -.
la sceneggiatura:
ASD ar;
void OnStart()
{
ar.fg (3,5);
ar.sf ();
}
classe:
{
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);}
};
Alert dà un risultato di 8, ma è un alert dalla classe, e ora ho bisogno di un alert dallo script
Ecco a voi, grazie, sto già iniziando a muovermi -.
la sceneggiatura:
ASD ar;
void OnStart()
{
ar.fg (3,5);
ar.sf ();
}
classe:
{
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);}
};
Alert dà un risultato di 8, ma è un avviso dalla classe, e ora ho bisogno di un avviso dallo script
Ok, dichiarate il metodo Alert() nella classe e chiamatelo ar.Alert(), anche se ora il metodo sf() fa lo stesso. Non ho capito bene cosa volete vedere dopo aver scritto un valore nel campo d?
Sembra che dovrebbe funzionare, non l'ho ancora controllato)
Tutti! Grazie mille! Capito -
sceneggiatura:
ASD ar;
void OnStart()
{
ar.fg (3,5);
Alert ( ar.sf ());
}
classe:
{
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 masticherò!
Non ricordo chi mi ha scritto in questo thread che il tester è rotto, ma posso rispondere che potrebbe anche essere rotto. O ingoia diversi pezzi di tempo o inizia a contare da un segmento arbitrario (anche se tutte le citazioni sono lì).
Penso che chi ha bisogno di vedere capirà.
?
(restituisce un numero arrotondato a un multiplo di un dato valore)
o come arrotondare, per esempio, 2285.13 per essere un multiplo di (0.25) 2285.00 __ 2285.25 ___ 2285.50 ___ 2285.75
come posso conoscere il leverage di una coppia piuttosto che di un conto?
La quantità di leva fornita: