![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Bon après-midi.
J'essaie d'utiliser MQL5.J'ai désassemblé exp_tema.mq5 et modifié le code. Maintenant je dois imprimer en log MA de chaque bougie (20 dernières). Mais je ne comprends pas pourquoi certaines entrées manquent dans le journal. J'ai remarqué que si ma[3] est absent du journal, il n'y a pas de ma[13]. Pourquoi cela se produit-il ? Où se trouve l'erreur ?
C'est ici.
a manifestement un chèque en moins :
Pas besoin de vidéo.
Faites une impression détaillée dans le code, afin que nous puissions voir dans le journal à quoi correspondent les variables intermédiaires.
#property copyright "Copyright 2011, "
#property link "http://www.mql5.com"#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double Vhod=0;
Print("Начало_Vhod="+DoubleToString(Vhod,2));
Vhod=linfunc(15);
Print("Конец_Vhod="+DoubleToString(Vhod,2));
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
double linfunc(double b) // имя функции и список параметров
{
double a=1;
while((a/b)<1 && !IsStopped())//-------------------
{
Print("а="+DoubleToString(a,2)+", b="+DoubleToString(b,2)+", a/b="+DoubleToString(a/b,2));
a=a+1;
}
Print("а="+DoubleToString(a,2)+", b="+DoubleToString(b,2)+", a/b="+DoubleToString(a/b,2));
Print("a+b="+DoubleToString(a+b,2));
double f=a+b;
// составной оператор
return(f); // возвращаемое значение
}
//+------------------------------------------------------------------+
Voici le code.
Voici son impression
GM 0 1 (EURUSD,M1) 18:11:11 Start_Vhod=0.00
FO 0 1 (EURUSD,M1) 18:11:13 a=1.00, b=15.00, a/b=0.07
JF 0 1 (EURUSD,M1) 18:11:13 a=2.00, b=15.00, a/b=0.13
CQ 0 1 (EURUSD,M1) 18:11:13 a=3.00, b=15.00, a/b=0.20
EH 0 1 (EURUSD,M1) 18:11:13 a=4.00, b=15.00, a/b=0.27
KS 0 1 (EURUSD,M1) 18:11:13 a=5.00, b=15.00, a/b=0.33
PJ 0 1 (EURUSD,M1) 18:11:13 a=6.00, b=15.00, a/b=0.40
PE 0 1 (EURUSD,M1) 18:11:13 a=7.00, b=15.00, a/b=0.47
HL 0 1 (EURUSD,M1) 18:11:13 a=8.00, b=15.00, a/b=0.53
MF 0 1 (EURUSD,M1) 18:11:13 a=9.00, b=15.00, a/b=0.60
JR 0 1 (EURUSD,M1) 18:11:13 a=10.00, b=15.00, a/b=0.67
FK 0 1 (EURUSD,M1) 18:11:13 a=11.00, b=15.00, a/b=0.73
OP 0 1 (EURUSD,M1) 18:11:13 a=12.00, b=15.00, a/b=0.80
MI 0 1 (EURUSD,M1) 18:11:13 a=13.00, b=15.00, a/b=0.87
KF 0 1 (EURUSD,M1) 18:11:13 a=14.00, b=15.00, a/b=0.93
EO 0 1 (EURUSD,M1) 18:11:13 a=15.00, b=15.00, a/b=1.00
DJ 0 1 (EURUSD,M1) 18:11:14 a+b=30.00
RL 0 1 1 (EURUSD,M1) 18:11:17 End_Vhod=0.00
NH 2 1 (EURUSD,M1) 18:11:24 débogage terminé
Si vous exécutez le débogage EX5 non pas à partir de l'éditeur, mais directement dans le terminal - le même résultat ?
Pouvez-vous joindre le débogage EX5 ?
Voici son empreinte
GM 0 1 (EURUSD,M1) 18:11:11 Start_Vhod=0.00
FO 0 1 (EURUSD,M1) 18:11:13 a=1.00, b=15.00, a/b=0.07
JF 0 1 (EURUSD,M1) 18:11:13 a=2.00, b=15.00, a/b=0.13
CQ 0 1 (EURUSD,M1) 18:11:13 a=3.00, b=15.00, a/b=0.20
EH 0 1 (EURUSD,M1) 18:11:13 a=4.00, b=15.00, a/b=0.27
KS 0 1 (EURUSD,M1) 18:11:13 a=5.00, b=15.00, a/b=0.33
PJ 0 1 (EURUSD,M1) 18:11:13 a=6.00, b=15.00, a/b=0.40
PE 0 1 (EURUSD,M1) 18:11:13 a=7.00, b=15.00, a/b=0.47
HL 0 1 (EURUSD,M1) 18:11:13 a=8.00, b=15.00, a/b=0.53
MF 0 1 (EURUSD,M1) 18:11:13 a=9.00, b=15.00, a/b=0.60
JR 0 1 (EURUSD,M1) 18:11:13 a=10.00, b=15.00, a/b=0.67
FK 0 1 (EURUSD,M1) 18:11:13 a=11.00, b=15.00, a/b=0.73
OP 0 1 (EURUSD,M1) 18:11:13 a=12.00, b=15.00, a/b=0.80
MI 0 1 (EURUSD,M1) 18:11:13 a=13.00, b=15.00, a/b=0.87
KF 0 1 (EURUSD,M1) 18:11:13 a=14.00, b=15.00, a/b=0.93
EO 0 1 (EURUSD,M1) 18:11:13 a=15.00, b=15.00, a/b=1.00
DJ 0 1 (EURUSD,M1) 18:11:14 a+b=30.00
RL 0 1 1 (EURUSD,M1) 18:11:17 End_Vhod=0.00
NH 2 1 (EURUSD,M1) 18:11:24 débogage terminé
Il ne joue pas.
Win7 x64
MT5 x64 build 687
Si vous exécutez le débogage EX5 non pas à partir de l'éditeur, mais directement dans le terminal - le même résultat ?
Pouvez-vous joindre le débogage EX5 ?
C'est intéressant, si je l'exécute depuis le testeur, il donne 30, si je l'exécute en tant qu'EA, il donne aussi 30 à l'impression.
Si je retourne au débogage, il renvoie 0.
MetaDriver
Sur quelle construction et sur quel type de (excusez l'expression) cela a fonctionné.
Je dois encore mettre en page la vidéo sera, si personne d'autre ne peut pas reproduire ce miracle.
Juste là.
manque clairement de contrôles :
Merci, je vais essayer de l'ajouter.
Voici une vidéo (mais choisissez une résolution supérieure à 720, sinon tout sera en soap)
https://www.youtube.com/watch?v=Prpw6DUYvjY&feature=youtu.be
Win7 64bit MT5 687 build
Comme je l'ai découvert, l'effet lorsque le retour donne 0 semble se produire uniquement dans le débogueur.
En même temps, si j'utilise uniquement le bouton "step while", cela semble fonctionner.
Si j'entre dans la boucle while pour en sortir avec le bouton "step in", cela ne fonctionne pas, la sortie est stablement 0.
En général, la vidéo montre tout, mais comment être et quoi faire jusqu'à ce que je ne comprenne pas (et pourquoi est-ce si seulement moi ?).
Win7 64bit MT5 687 build
Pendant l'optimisation, des symboles incompréhensibles sont apparus
Dans l'onglet du graphique d'optimisation verticale, toutes les valeurs sont à -1.
Juste là.
manque clairement de contrôles :
Cependant, j'ai toujours des problèmes avec les tampons. Tout est clair quand je les lis, mais je ne comprends pas comment les mettre en œuvre dans le code. Si cela ne vous dérange pas trop, pouvez-vous l'insérer dans le code ?