![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
Le fichier .ex5 d'un des indicateurs a augmenté de près de 10 fois sa taille par rapport au fichier .ex5 compilé par la version précédente. Ce n'est pas un problème. Mais une erreur est apparue lors du dessin de l'indicateur (avant la saisie de ses paramètres) :
J'ai déjà corrigé le code 3\4. Et si je commente encore un peu, je l'obtiendrai (avec l'erreur ci-dessus) :
et ça ne marche vraiment pasEt si je commente à nouveau un peu le code, les deux premières erreurs disparaissent, mais je les obtiens lors du déchargement de l'indicateur:
(Les chiffres peuvent être différents - cela dépend de la quantité de code que j'ai commenté)J'ai découvert à l'avance que ma fonction est trop importante en volume - je la battrai sur de petites fonctions.
... et tout allait bien dans la dernière version.
Le fichier .ex5 d'un des indicateurs a augmenté de près de 10 fois sa taille par rapport au fichier .ex5 compilé par la version précédente. Ce n'est pas un problème. Mais une erreur est apparue lors du dessin de l'indicateur (avant la saisie de ses paramètres) :
J'ai déjà corrigé le code 3\4. Et si je le change un peu plus, j'obtiendrai (avec l'erreur ci-dessus) :
Nous avons renforcé le contrôle de l'environnement sandbox pour une meilleure sécurité.
Le message concernant la pile vous indique que vous avez utilisé plus de 256 kilo-octets de pile dans l'une de vos fonctions, ce qui constitue un problème sérieux en programmation. Par exemple, en C/C++, l'utilisation d'une fonction de pile locale même pour 16Kb est considérée comme un avertissement sérieux.
Vous allouez probablement beaucoup de tableaux statiques dans les fonctions, par exemple :
Vous ne devez pas faire ça.
Si vous avez besoin de tableaux de grande taille, utilisez plutôt des tableaux dynamiques. Par exemple :
Nous avons renforcé le contrôle de l'environnement sandbox dans un souci de sécurité accrue.
Le message concernant la pile vous indique que vous avez utilisé plus de 256 kilo-octets dans une fonction de la pile, ce qui est un problème sérieux en programmation. Par exemple, en C/C++, utiliser une pile locale, même de 16 kb, dans une fonction est considéré comme un avertissement sérieux.
Vous allouez probablement beaucoup de tableaux statiques dans les fonctions, par exemple :
Vous ne devriez pas faire ça.
Si vous avez besoin de tableaux de grande taille, utilisez plutôt des tableaux dynamiques. Par exemple :
Je n'utilise pas du tout de tableaux statiques dans cet indicateur ; je ne passe rien de plus lourd que int dans les fonctions, etc. Mais vous utilisez activement toutes sortes de fonctions graphiques.
Par exemple,
Si la dernière ligne est commentée, tout va bien. Le problème est qu'il y a beaucoup d'appels de ce type et que celui-ci
est le 20e ou le 30e d'affilée.
Je pense que le problème réside dans la taille de la fonction, puisque commenter le code évite le problème, alors que la majeure partie du code est constituée d'ObjectSetXXX. J'ai découvert, par le biais d'expériences, qu'il est également inutile de le diviser en parties plus petites - un inliner agressif continuera à tout empiler et à générer des erreurs. Je peux essayer de mettre plus de code, mais je le ferai demain. Le bureau de service est aussi demain, si nous ne trouvons pas une solution plus tôt.
Je n'utilise pas du tout de tableaux statiques dans cet indicateur ; je ne passe rien de plus lourd que int dans les fonctions, etc. Mais toutes sortes de fonctions graphiques sont activement utilisées.
Mais il y a quelque chose d'énorme, n'est-ce pas ?
Par exemple, incluez une copie locale d'une classe qui a juste une tonne de tableaux statiques dans ses membres. C'est généralement là que se cachent les dépôts des consommateurs de piles locales.
Par exemple,
Si la dernière ligne est commentée, tout va bien. Le problème, c'est que nous avons beaucoup d'appels de ce type et que celui-ci...
est le 20e ou le 30e d'affilée.
Je pense que le problème réside dans la taille de la fonction, puisque commenter le code permet d'éviter le problème, et que la majeure partie du code consiste en ObjectSetXXX. J'ai découvert, par le biais d'expériences, qu'il est également inutile de le diviser en parties plus petites - un inliner agressif continuera à tout empiler et à générer des erreurs. Je peux essayer de mettre plus de code, mais je le ferai demain. Service Desk également demain, si nous ne trouvons pas de solution avant.
Répartir les fonctions, les empiler en classes.
Inliner n'a probablement rien à voir avec cela - il n'insère pas de trop gros morceaux de code. En particulier s'ils sont lourds et comportent beaucoup de variables locales.
Mais il y a quelque chose d'énorme, n'est-ce pas ?
Par exemple, incluez une copie locale d'une classe qui a juste une tonne de tableaux statiques dans ses membres. C'est généralement là que se cachent les dépôts des consommateurs de piles locales.
Répartir les fonctions, les empiler en classes.
Inliner n'a probablement rien à voir avec cela - il n'insère pas de trop gros morceaux de code. Surtout s'ils ont beaucoup de variables locales.
Pourquoi est-ce que c'est comme ça ? un mauvais paiement ou quoi ! seulement 1 agent a gagné 1 kr et 0.3 kr a fait un paiement par jour !
Veillez à écrire à servicedesk avec ces en-têtes :
Version du terminal et débit binaire
...
Description du problème
...
Séquence d'actions ...
...
Résultat obtenu ...
...
Résultat attendu ...
...
Informations complémentaires ...
...
Ou pouvez-vous l'exprimer avec vos propres mots ?
ou pouvez-vous l'exprimer avec vos propres mots ?
Devez-vous écrire à Servicedesk avec ces rubriques ?
ou puis-je le faire avec mes propres mots ?
vous pouvez faire tout cela avec vos propres mots, mais
Version du terminal et débit binaire
Description du problème
Séquence d'action
Résultat obtenu
Résultat attendu
nécessairement.
------------
Vous n'écrivez pas un essai sur un sujet libre, vous écrivez un texte pour un développeur qui doit comprendre rapidement ce que vous attendez de lui sans aucun détail.
tu peux tout faire toi-même, mais
Version du terminal et débit binaire
Description du problème
Séquence d'action
Résultat obtenu
Résultat attendu
nécessairement.
------------
Vous n'écrivez pas un essai sur un sujet libre, vous écrivez un texte pour un développeur qui doit comprendre rapidement ce que vous attendez de lui sans aucun détail.