Caractéristiques du langage mql5, subtilités et techniques - page 182
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
Par exemple, je supprime tous les objets de mon VDS. Je ne veux pas surcharger le planning. Et il n'y a pas besoin d'eux là-bas. J'utilise des globales. Tout dépend donc de la situation.
Ecoutez, je ne les aime pas pour une raison :
Ecoute, il y a une raison pour laquelle je ne les aime pas :
Eh bien, il n'y a pas besoin de le lire. Vous pouvez utiliser GlobalVariableCheck pour vérifier si la variable est présente ou non. Vous pouvez faire de même avec les objets.
Il suffit donc de créer/contrôler/supprimer une variable.
Vladimir Simakov:
2. Disponibilité des variables en dehors du programme.
pas de problème, toutes les fonctions qui travaillent avec des variables globales ont une valeur de retour - le résultat de l'opération
il y a un outil de synchronisationhttps://www.mql5.com/ru/docs/globals/globalvariablesetoncondition , ce n'est pas grand chose, mais utilisez ce qui vous est offert.
Mais le gros inconvénient est le type de données - seulement double, je n'aime pas double, au moins ulong aurait été utilisable, et l'organisation de nom / valeur ---> chaîne / double provoque un désir de swap - pour écrire les données dans la chaîne et la clé en double - plus pour une opération peut être écrit / lu
mais ayant estimé tous ces "trucs" Vous pouvez les écrire dans des fichiers binaires, c'est-à-dire une liberté totale et aucune incertitude.
il faut probablement savoir comment travailler avec eux
@fxsaber a montré des exemples de travail avec tous les typeshttps://www.mql5.com/ru/forum/320395/page6#comment_12910394
Eh bien, il n'y a pas besoin de lire. Vous pouvez simplement utiliser GlobalVariableCheck pour vérifier si la variable existe ou non. Vous faites la même chose avec les objets.
Ainsi, il vous suffit de créer/contrôler/supprimer la variable.
Oui, un banal conflit d'appellation et la chaîne dans l'autre robot
GlobalVariableDel(yourValueName);
vous perdrez votre dépôt))))
Dites que le nom sera unique, que l'autre robot ne sera jamais là, que l'enfant/la femme/l'ami/l'ivrogne ne s'approchera jamais du terminal de combat))). D'accord, mais la probabilité n'est pas nulle, ce qui signifie que le code n'est pas fiable.
Il s'agit d'un conflit de nom trivial et la ligne de l'autre robot
vous videra de votre dépôt)))
Vous direz que le nom sera unique, que l'autre robot ne sera jamais là, que l'enfant/la femme/l'ami/l'ivrogne lui-même ne s'approchera jamais du terminal de combat))). D'accord, mais la probabilité n'est pas nulle, ce qui signifie que le code n'est pas fiable.
Foutaises et fantasmes
Un EA sur l'argent fonctionne TOUJOURS à partir d'un terminal séparé, sur son propre VDS (ou même serveur) et personne ne s'en mêle jamais.
Foutaises et fantasmes
Un EA sur l'argent fonctionne TOUJOURS à partir d'un terminal séparé, sur son propre VDS (ou même serveur) et personne ne s'en mêle jamais.
Que voulez-vous dire par TOUJOURS ? Aujourd'hui - toujours, demain vous pouvez calculer différemment. Et tout le monde ne semble pas être d'accord avec vous.
J'ai souligné le réel danger d'utiliser les variables globales du terminal. Ce n'est ni bon ni mauvais - c'est un acquis que les développeurs nous ont donné, nous devons juste en être conscients et en tenir compte.
La même chaîne
GlobalVariablesDeleteAll();
...fait dans n'importe quel script et oops...
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Particularités de mql5, trucs et astuces
Vladimir Simakov, 2020.05.24 17:02
La même chaîne
GlobalVariablesDeleteAll();
...fait dans n'importe quel script et oops.
Il en va de même pour les objets graphiques.
ObjectsDeleteAll(...
Seules les ressources de l'EA ne peuvent pas être modifiées par d'autres programmes.
Chers collègues, aidez-moi à réaliser une macro, si possible.
Je dois déclarer dynamiquement un tableau à deux dimensions. Et la deuxième dimension doit également être modifiée. C'est quelque chose comme cette boucle :
Bien sûr, le compilateur sera réticent à cette idée :
J'aimerais voir une macro comme :
Au lieu d'une ligne :
double d_array[][would_be_size2];
Merci.
Chers collègues, aidez-moi à réaliser une macro, si possible.
Je dois déclarer dynamiquement un tableau à deux dimensions. Et la deuxième dimension doit également être modifiée. C'est quelque chose comme cette boucle :
Bien sûr, le compilateur sera réticent à cette idée :
J'aimerais voir une macro comme la suivante :
Au lieu d'une ligne :
Merci.
Mais la création d'un tableau de taille suffisante (maximale) en dehors de la boucle est entravée par la politique ? :-)
L'approche ci-dessus (recréer le tableau dans la boucle à chaque fois) ne gagne rien en termes de vitesse ou de consommation de mémoire.
J'aimerais voir une macro similaire à celle-ci :
Ça ne marchera pas.