
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
Développeurs, vous avez une erreur quelque part.
Regardez la capture d'écran de Comment après avoir fermé le terminal et l'avoir ouvert après 1 minute.
Nombre d'éléments initialisés et que le premier, deuxième, troisième et quatrième élément du tampon est vide.
L'indicateur ne compte que le 0e tampon. Alors pourquoi 2 bougies ?
Développeurs, vous avez une erreur quelque part.
Regardez la capture d'écran de Comment après avoir fermé le terminal et l'avoir ouvert après 1 minute.
Nombre d'éléments initialisés et que le premier, deuxième, troisième et quatrième élément du tampon est vide.
L'indicateur ne compte que le 0e tampon. Alors pourquoi 2 bougies ?
Car lorsque vous analysez pour une nouvelle barre, vous ne vérifiez pas le nombre de barres, mais vous vous limitez à vérifier le temps. Lorsque vous démarrez le terminal ou que vous rompez la connexion avec le serveur pendant l'opération, un tick vient avant l'arrivée des barres manquantes (à l'historique complet). À ce moment-là, une nouvelle bougie est créée, mais il y a un écart (historique manquant) entre elle et l'historique du terminal, qui sera téléchargé du serveur et inséré à sa place. Après l'ouverture d'un nouveau bar, il disparaîtra.
Et cela n'a pas d'importance que dans deinit la mise à zéro se produise lorsque le terminal est fermé?
Vasily, exécutez un indicateur de test qui imprime le nombre de barres.
Voici ce qu'il imprime dans le journal.
Peut-être que cela vous dira d'où vient le problème...
Veuillez demander aux développeurs une réponse simple.
Lorsque le terminal est fermé, la fonction DeInit() est-elle exécutée dans les programmes attachés à la carte ?
A proprement parler, non.
OnDeinit est exécuté. DeInit ne sera exécuté que si vous l'appelez explicitement depuis OnDeinit.
Si vous faites référence à l'ancienne fonction deinit, n'oubliez pas que les noms de fonction sont sensibles à la casse. C'est-à-dire que deInit est une fonction inconnue, deinit est un point d'entrée standard sur la désinitialisation (comme OnDeinit).
Et cela n'a pas d'importance que dans deinit la mise à zéro a lieu lorsque le terminal est fermé ?
Qui s'en soucie ? Lorsque vous fermez le terminal, ces tampons ne sont plus nécessaires, car ils sont immédiatement libérés lorsque le programme est déchargé, ce qui se produit immédiatement après OnDeinit.
Essayez simplement de changer la période de temps. OnDeinit fonctionnera, les tampons resteront (car le programme n'est pas déchargé dans ce cas), mais personne ne garantit leur contenu de la "vie antérieure".
Lisez enfin la documentation ! https://docs.mql4.com/ru/runtime/running et https://docs.mql4.com/ru/runtime/event _fire#deinit
Qui s'en soucie ? Lorsque vous fermez le terminal, ces tampons ne sont plus nécessaires, car ils sont immédiatement libérés lorsque le programme est déchargé, ce qui se produit immédiatement après OnDeinit.
Essayez simplement de changer la période de temps. OnDeinit fonctionnera, les tampons resteront (puisque le déchargement du programme n'a pas lieu dans ce cas), mais personne ne garantit leur contenu de la "vie antérieure".
Lisez enfin la documentation ! https://docs.mql4.com/ru/runtime/running et https://docs.mql4.com/ru/runtime/event _fire#deinit
Donc dans mon cas, les tampons sont bifurqués lorsque le graphique est rouvert ?
Vous n'avez pas de bifurcation de tampon.
C'est ainsi que vous remplissez vous-même votre tampon. La première fois, lorsque vous le dessinez ; la deuxième fois, lorsque vous obtenez une partie des données. Les deux fois, vous opérez avec la même valeur Time[0].
Il n'y a pas de partage de la mémoire tampon.
C'est ainsi que vous remplissez vous-même votre tampon. La première fois au moment du rendu et la seconde à l'arrivée des données. Les deux fois, vous opérez avec la même valeur Time[0].
OK.
Veuillez corriger l'aide en anglais et c'est tout.
L'aide en anglais indique également queArrayInitialize ne renvoie rien.