Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 93
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Les impressions ne peuvent être insérées que dans une fonction, mais je ne comprends pas comment appeler cette fonction pour que l'impression ou l'alerte fonctionne. Pouvez-vous m'aider en corrigeant mon code avec trois simples variables ? Je fais tout ce qui est décrit dans l'article, mais l'éditeur ne s'affiche pas, ou il manque quelque chose, ou il manque quelque chose, en tout cas, le mur, alors j'ai demandé de l'aide. Merci pour le SKC.
Vous êtes en train de sortir d avec une alerte.
Où est-il calculé ?
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA=1;
input int InputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
Print(__FUNCTION__);
return(c(m_a,m_b));
}
public:
int a;
int b;
int d;
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d);
}
//+------------------------------------------------------------------+
À l'intérieur de la classe, faites des impressions sur les valeurs. Et regardez ensuite dans le journal ce qui sera imprimé lors de l'exécution du script ;)
Et donc c'est aussi bien.
classe :
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int a_s;
int a_d;
int d;
int g ()
{d=a_s+a_d;
return (g());
}
public:
void fg (int a,int b)
{ a_s=a;
a_d=b;
}
void sf ()
{g ();
Alert (d);}
};
le scénario
ASD ar;
void OnStart()
{
ar.fg (3,5);
ar.sf ();
}
Et donc c'est aussi bien.
classe :
Et donc aussi rien
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA=1;
input int InputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
public:
int a;
int b;
int d;
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
d=m_a+m_b;
Print(__FUNCTION__);
return(d);
}
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d,"\nar.c(",ar.a,",",ar.b,")=",ar.c(ar.a,ar.b));
}
//+------------------------------------------------------------------+
Ce n'est pas clair - que voulez-vous obtenir ?
Je le fais :
1. pour passer les données du script à la classe
2. additionner ces données dans la classe
3. passer la somme de la classe au script
4. à partir du script, imprimez la somme des données sur un moniteur ou une imprimante.
Tout !
Je le fais :
1. passer les données du script à la classe
2. additionner ces données dans la classe
3. passer la somme de la classe au script
4. à partir du script, sortez la somme des données sur un moniteur ou une imprimante.
Tous !
Voir l'exemple ci-dessus
Mais il ne calcule pas non plus la somme des variables a+b=d, alors que j'ai besoin de la somme de d !
Je ne t'ai pas montré exactement ce que ça devrait compter. Je vous ai montré comment obtenir la valeur calculée - appelez la fonction c() ;
Vous ne l'avez appelé nulle part, et vous avez attendu que d se calcule d'une manière ou d'une autre.
Et ce que la fonction c() calcule, c'est vous qui le décidez.
Je ne t'ai pas montré exactement ce que ça devrait compter. Je vous ai montré comment obtenir la valeur calculée - appelez la fonction c() ;
Vous ne l'avez appelé nulle part, et vous attendiez que d se calcule d'une manière ou d'une autre.
Et c'est à vous de décider ce que la fonction c() compte !
Je sais comment créer et appeler la fonction dans le conseiller expert, et je l'utilise. La question porte sur les cours !
Je ne t'ai pas montré exactement ce que ça devrait compter. Je vous ai montré comment obtenir la valeur calculée - appelez la fonction c() ;
Tu ne l'as appelé nulle part, et tu attendais que d se calcule d'une manière ou d'une autre.
Et ce que la fonction c() calcule, c'est vous qui le décidez.
C'est le but, comment appeler une fonction à l'intérieur d'une classe, à savoir, comment private : public :, comment passer des données à une classe et comment obtenir le résultat de la classe. Jusqu'à présent, c'est ça !
Mais votre fonction ne calcule rien non plus.