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
S'il y a une position, vous obtiendrez une boucle infinie car
est équivalent à
Il n'y a aucun moyen de sortir de la boucle dans le code car il n'y a pas de rupture dans le corps de l'opérateur ;Erreurs (build 421, peut-être quelque chose de corrigé dans la 425, pas encore de mise à jour de la 425 par alpari) :
1. Déjà écrit dans le fil de discussion sur la visualisation 3D : les légendes des graphiques 3D (nom de l'échelle et valeur de l'échelle) ne changent pas lorsque l'on modifie les paramètres d'affichage sur le graphique.
2. Au cours de l'optimisation rapide, le graphique est apparié à environ 10600ème passage, c'est-à-dire que l'optimisation se poursuit pendant 50,51...60 générations et le graphique ne se déplace pas et les nouveaux passages ne sont pas affichés. Dans le même temps, l'onglet Paramètres affiche "Progression de l'optimisation :" au lieu du nombre de passages, et dans certaines circonstances inexpliquées, il passe encore à, par exemple, 12420/14400 (les chiffres sont approximatifs).
3. Les agents supprimés peuvent passer à l'état Busy et rester dans cet état, je dois les désactiver et les réactiver, après quoi l'optimisation continue.
Et question : sera-t-il possible de changer la vue du graphique (1D/2D/3D) pendant l'optimisation et non après son achèvement ?
Erreurs (build 421, peut-être quelque chose de corrigé dans la 425, pas encore de mise à jour de la 425 par alpari) :
Erreurs (build 421, peut-être quelque chose de corrigé dans la 425, pas encore de mise à jour de la 425 par alpari) :
1. Déjà écrit dans le fil de discussion sur la visualisation 3D : les légendes des graphiques 3D (nom de l'échelle et valeur de l'échelle) ne changent pas lorsque l'on modifie les paramètres d'affichage sur le graphique.
2. Au cours de l'optimisation rapide, le graphique est apparié à environ 10600ème passage, c'est-à-dire que l'optimisation se poursuit pendant 50,51...60 générations et le graphique ne se déplace pas et les nouveaux passages ne sont pas affichés. En même temps, l'onglet Paramètres affiche "Progression de l'optimisation :" au lieu du nombre de passages, et dans certaines circonstances inexpliquées, il change encore, par exemple, 12420/14400 (les chiffres sont approximatifs).
3. Les agents supprimés peuvent passer à l'état Busy et rester dans cet état, je dois les désactiver et les réactiver, après quoi l'optimisation continue.
Et une question : sera-t-il possible de changer la vue graphique (1D/2D/3D) pendant l'optimisation et non après son achèvement ?
1,2 Corrigé, mais pas inclus dans la dernière version.
3 Nous y travaillons.
Il n'y aura pas de telle fonction
mais aussi pour pouvoir auto-initialiserle tableau avec cette valeur. Si rien n'a été assigné par l'indicateur à la dernière barre, alors par défaut il assigne ce qui a été spécifié dans le champ
PLOT_EMPTY_VALUE
ou plutôt, vous l'initialisez d'abord avec une valeur vide et laissez ensuite l'indicateur écrire ce qu'il veut.
Parce que maintenant la valeur par défaut sera zéro, mais zéro dans de nombreux indicateurs est un nombre significatif qui devrait être tiré.
HZ a écrit dans ce fil que je ne suis pas sûr que cela n'a pas été résolu, donc le souhait peut être considéré comme une question. Si c'est le cas, veuillez me dire comment le problème est résolu.
Urain:
Parce qu'à l'heure actuelle, le chiffre par défaut sera zéro, mais dans de nombreux indicateurs, zéro est un chiffre significatif à tirer.
En fait, tout peut être là, c'est juste que c'est généralement une chance que ce soit zéro. L'articleindicateur de l'indicateur dans MQL5 dit directement :
Est-il nécessaire d'initialiser les tampons indicateurs ?
Les tableaux dans MQL5 ne sont pas initialisés par défaut avec une valeur quelconque, et cela s'applique certainement aux tableaux qui sont assignés aux tampons d'indicateurs en utilisant SetIndexBuffer(). Si un tableau est un tampon indicateur, sa taille dépendra du paramètre rates_total du gestionnaire OnCalculate().
On peut être tenté d'initialiser tous les tampons d'indicateurs avec une valeur vide de EMPTY_VALUE en utilisant la fonction ArrayInitialize(), par exemple, une fois au début de OnCalculate()Mais il n'est pas recommandé de le faire pour la raison suivante : pendant le fonctionnement du terminal, les cotations du symbole, sur les données duquel l'indicateur est calculé, sont reçues. Ainsi, le nombre de barres augmentera au fil du temps, et le terminal allouera de la mémoire supplémentaire pour les tampons d'indicateurs.
Mais les valeurs des éléments du tableau nouvellement attachés auront n'importe quelle valeur, car lorsque la mémoire est réallouée pour un tableau, il n'y a pas d'initialisation. Et l'initialisation initiale peut donner une confiance trompeuse que tous les éléments du tableau, auxquels nous n'avons pas explicitement assigné de valeur, seront remplis avec la même valeur avec laquelle nous avons initialisé le tableau la première fois. Ce n'est certainement pas vrai, et nous ne devrions jamais compter sur le fait que la valeur d'une variable ou d'un élément de tableau soit initialisée avec la valeur que nous voulons.
Il est nécessaire de définir une valeur pour chaque élément du tampon de l'indicateur, et si la valeur de l'indicateur pour cette barre n'est pas définie (non calculée, selon l'algorithme implémenté dans l'indicateur), alors pour de tels cas une valeur vide doit être explicitement définie. Par exemple, la valeur du tampon de l'indicateur est calculée en utilisant l'opération de division, et à un moment donné il peut s'avérer que le diviseur est égal à zéro.En fait, tout peut être là, c'est juste que c'est généralement une chance qu'il n'y en ait pas. L'articleIndicator from Indicator in MQL5 le dit explicitement :
C'est exactement le problème que je voudrais résoudre au niveau du langage, car l'initialisation de la dernière valeur nécessitera des lignes de code supplémentaires où il peut y avoir des erreurs.
De cette façon, vous pouvez être sûr de la valeur exacte et, sur cette base, vous pouvez construire d'autres algorithmes.
C'est exactement le problème que je voudrais résoudre au niveau du langage, car l'initialisation de la dernière valeur nécessitera des lignes de code supplémentaires qui peuvent contenir des erreurs.
De cette façon, vous pouvez être sûr qu'il existe une valeur exacte et sur cette base, vous pouvez construire d'autres algorithmes.
J'ai rencontré cela aussi. Je suis favorable à ce que la solution se situe au niveau de la langue.
Construire 425
Je suis confus par cette situation avec le testeur : l'EA est exécuté plusieurs fois dans les mêmes conditions, mais les résultats des exécutions sont différents. La différence est minime, mais...
Vérifié sur deux machines, j'obtiens 2 résultats différents, avec une probabilité approximativement égale. Qu'est-ce que ça veut dire ?