Questions des débutants MQL5 MT5 MetaTrader 5 - page 503
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
Pour les paires de devises, si vous mettez une limite, tout fonctionne, mais pour la période de temps ne fonctionne pas, même si vous le mettez sur l'indicateur h1 ne fonctionne pas.
https://docs.mql4.com/ru/chart_operations/periodwindow
https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes
Valeur de retourPériode du graphique actuel (en minutes).
Essayez, ça marchera peut-être.
Ou supprimer les guillemets.
https://docs.mql4.com/ru/chart_operations/periodwindow
https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes
Valeur de retourPériode du graphique actuel (en minutes).
Essayez-le et voyez si ça marche.
Une autre question, lors de l'ajout au début lorsque l'indicateur #property strict donne l'erreur array out of range dans 'Indicator name' (100,41) comment le gérer ?
Qu'est-ce qu'il y a de mal à ça ?
Je suis désolé, je n'étais pas au courant de l'insertion du code, mais pour ce qui est du code lui-même, pourquoi cela se produit-il lorsque vous insérez #property strict et que tout fonctionne sans cela ?
Avez-vous vu l'aide dans MetaEditor ?
Le travail avec les fonctions, la portée des variables et la libération de la mémoire dans les tableaux locaux ont également changé. Comme les changements se sont avérés assez importants, il a été décidé d'introduire une nouvelle propriété #property strict afin de maximiser la compatibilité avec l'ancienne approche d'écriture des programmes MQL4. Lors de la création d'un nouveau programme MQL4 à l'aide de l'assistant MQL4, cette propriété est toujours ajoutée au modèle.
Et ainsi de suite :
Tableau des différences entre compilateurs :
Ancien compilateur MQL4
Nouveau compilateur MQL4
Nouveau compilateur MQL4 avec #property strict
Les points d'entrée init(), start(), deinit() peuvent avoir tous les paramètres et tous les types de retour.
init(), start(), deinit() conservés pour la compatibilité,
et les nouveauxOnInit(),OnStart(),OnCalculate(),OnTick(),OnTimer(),OnChartEvent(),OnTester(),OnDeinit() doivent correspondre exactement à leurs signatures
Même
Le résultat du retour de la fonction init() n'est analysé d'aucune façon par le sous-système d'exécution.
Le résultat du retour des fonctions init() et OnInit() n'est en aucun cas analysé par le sous-système d'exécution.
Lorsque l'expert ou l'indicateur renvoie une valeur non nulle de OnInit(), il s'arrête et le programme est déchargé.
Les noms des variables peuvent être presque tous les types de caractères (sauf les mots réservés), y compris les caractères spéciaux et les points.
Les noms de variables ne peuvent pas comporter de caractères spéciaux ni de points.
La listedes mots réservés est étendue, de sorte que des mots courants comme short, long, const, etc. ne peuvent pas être nommés.
Même
La portée d'une variable s'étend de la déclaration (même dans un bloc imbriqué) à la fin de la fonction.
Même
Plage de visibilité d'une variable - de la déclaration à la fin du bloc dans lequel la variable est déclarée.
Initialisation implicite de toutes les variables (globales et locales) avec des zéros.
Le même
Initialisation des variables globales uniquement. A partir des variables locales, seules les chaînes de caractères sont initialisées implicitement.
Les tableaux locaux ne sont pas libérés à la sortie de la fonction.
Les tableaux locaux sont libérés à la sortie de la fonction
Les tableaux locaux sont libérés à la sortie {}
L'erreur"Array out of range" ne conduit pas à une erreur critique*.
Idem. Sauf pour les tableaux de structures et les classes pour lesquels cette erreur est critique.
"Array out of range" est une erreur critique qui entraîne l'arrêt du programme.
Pas de structures et de classes
Il existe desstructures et des classes. Des types de données supplémentaires apparaissent.
Même
Chaînes de caractères - simple octet.
datetime - entier de 32 bits
La variable prédéfinie Volume est de type double
Chaînes de caractères - unicode.
datetime - entier de 64 bits
Levolume est une variable prédéfinie de type long.
Même
ArrayCopyRates() produit une copie virtuelle vers le tableau double[][6]
ArrayCopyRates() produit une copie virtuelle vers le tableau MqlRates[]. Pour des raisons de compatibilité, la copie dans le tableau double[][6] est maintenue, mais cette copie n'est pas virtuelle mais réelle.
Aussi.
Les fonctions ne peuvent pas renvoyer de valeurs même si elles ont un type. À cette fin, le compilateur insère automatiquement return(0) à la fin de la fonction.
Idem.
Les fonctions de tout type doivent toujours retourner une valeur
Nombre de fichiers ouverts simultanément - 32
Nombre de fichiers ouverts simultanément - 64
Même
Les fichiers sont toujours ouverts en mode partagé **
Le mode de partage doit être déclaré explicitement avec FILE_SHARE_READ et/ou FILE_SHARE_WRITE.
Même
Les scripts dans la fenêtre d'entrée montrent les noms des variablesexternes.
Les noms desvariablesexternes et d'entrée sont affichés dans la fenêtre des paramètres d'entrée pour les scripts en mode show_inputs.
Pour les scripts en mode show_inputs, les commentaires de chaîne sont affichés dans la fenêtre d'entrée à la place des noms devariablesexternes et d'entrée.
* Vous devez prêter une attention particulière à l'erreur "Array out of range" - de nombreux anciens indicateurs personnalisés produiront cette erreur dans le nouveau compilateur en mode strict lorsqu'ils sont exécutés sur un graphique. Il est souhaitable d'en trouver la cause et de l'éliminer.
** Dans les nouveaux MQL4 et MQL5, les drapeaux FILE_SHARE_READ et FILE_SHARE_WRITE sont responsables du mode de partage des fichiers, ils n'existaient pas dans l'ancien MQL4.
dis-moi ce qui ne va pas ?
Désolé si je vous dérange, mais maintenant il y a cette erreur
39ème position.
Même erreur, le tableau est hors de portée ?