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
Qu'entendez-vous par "corruptions" ? Je viens d'attacher votre indicateur à EURUSD M1 et je ne vois pas de valeurs.
Le terminal client 32bit MetaTrader 4 montre la même image. Etes-vous sûr que l'indicateur fourni fonctionne ?
Le terminal client 32bit MetaTrader 4 montre la même image. Êtes-vous sûr que l'indicateur fourni fonctionne ?
La deuxième version, horodatée du 2011.10.12 06:37, semble devoir commencer à dessiner immédiatement.
Mais, de toute façon, les problèmes ne commencent apparemment pas à se produire avant plusieurs heures.
Il semble que vous ayez téléchargé la version originale du code d'exemple (horodatée 2011.10.11 18:06). Cela ne dessine rien pendant 25 minutes.
Le terminal client 32bit MetaTrader 4 montre la même image. Êtes-vous sûr que l'indicateur fourni fonctionne ?
- Oui. J'exécute le même indicateur sur une machine 32 bits également, depuis la nuit dernière, environ 18 heures. Le problème ne se produit pas.
Si vous voulez un autre bug MT4 possible à poursuivre, que se passe-t-il si vous utilisez Low[i] et High[i] plutôt que iLow() et iHigh() ?
- Dans mon code actuel iHighest / iHigh / iLowest / iLow etc. sont utilisés . J'ai utilisé High/Low dans le code d'exemple pour réduire la complexité.
J'ai une idée... mais je dois sortir maintenant, j'ai ajouté l'indicateur à un nouveau graphique, je testerai mon idée à mon retour et je posterai les résultats.
OK, je viens de rentrer, le graphique était très bien depuis que j'ai chargé l'indicateur... puis j'ai essayé mon idée.... J'ai paginé vers le haut pour déplacer le graphique vers la droite afin que les nouvelles données soient téléchargées ... et voilà ... .
C'est ce que j'ai suggéré dans ce fil de discussion le 2011.10.07 19:08.
OK, je viens de rentrer, le graphique était très bien depuis que j'ai chargé l'indicateur... puis j'ai essayé mon idée.... J'ai paginé vers le haut pour déplacer le graphique vers la droite afin que les nouvelles données soient téléchargées ... et voilà ... .
Ok, donc vous supposez que l'historique de la barre change pour une raison quelconque, et qu'elle est remplie à l'envers, et que l'indicateur est affecté parce qu'il ne dessine que sur une base prospective et ne suit pas le comportement habituel des indicateurs qui recalcule sur la base de choses comme IndicatorCounted() ?
Je n'ai pas regardé le code récent . . mais oui, quelque chose qui ressemble à ce que vous avez écrit.
Ok, en résumé, ce que nous semblons avoir est le suivant :
* Un indicateur normal utilisera IndicatorCounted() pour déterminer quelles valeurs de barres sont "sales" et doivent être (re)calculées.
* Lorsque vous ajoutez des barres supplémentaires à l'historique en faisant défiler les données, IndicatorCounted() est remis à zéro. Par conséquent, à ce stade, un indicateur normal recalculera toutes ses valeurs historiques.
* L'indicateur ici ne fait pas cela. En effet, il ignore IndicatorCounted() et dessine uniquement sur une base prospective.
* Pour une raison quelconque, la machine Win64 d'AnkaSoftware est périodiquement rechargée avec des données plus anciennes, mais pas la machine Win32. Le système d'exploitation n'est probablement qu'une coïncidence dans ce contexte.
* C'est un peu vilain que MT4 n'ajuste pas les tampons des indicateurs à la lumière des nouvelles barres qui ont été ajoutées, et se fie plutôt au code de l'indicateur pour recalculer toutes les anciennes valeurs parce que IndicatorCounted() est réinitialisé. (Cependant, c'est raisonnablement justifiable, car l'ajout d'anciennes valeurs de barres à de nombreux indicateurs affecte potentiellement les calculs ultérieurs. Par exemple, une EMA sera modifiée, bien que par une valeur minuscule, si vous ajoutez une barre supplémentaire au début de l'historique).
* C'est un peu vilain que MT4 n'ajuste pas les tampons de l'indicateur à la lumière des nouvelles barres qui ont été ajoutées, et compte plutôt sur le code de l'indicateur pour recalculer toutes les anciennes valeurs parce que IndicatorCounted() est réinitialisé.
Disons que l'indicateur a fonctionné pendant un certain temps, mais qu'il y a ensuite une déconnexion du courtier qui dure pendant plusieurs barres. Lors de la reconnexion, MT4 recevra un tick et commencera à dessiner les valeurs de l'indicateur pour la dernière barre. Séparément, de manière asynchrone, et plus lentement, il recevra les données historiques pour les barres manquantes qui ont eu lieu pendant la déconnexion. Celles-ci sont insérées au milieu de l'historique des barres, et il est donc nécessaire pour tout indicateur normal de redessiner les anciennes valeurs à partir d'au moins le début de la période de déconnexion. En pratique, il est compréhensible que MT4 adopte l'approche "tout redessiner". Le seul problème est de savoir si MT4 doit automatiquement changer les valeurs du tampon en EMPTY_VALUE si elles sont potentiellement invalides.
Ce problème affecte-t-il UNIQUEMENT les indicateurs ?
Qu'en est-il des autres, disons High[], low[], ou iHigh, iLow, iLowest, iBarshift, etc, etc...., c'est ce que je préfère savoir et être clair.