
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
Une option. Il y en a d'autres.
Nous avons le premier rayon. Pour plus de simplicité - à partir de la barre de zéro. La barre de zéro a un maximum et un minimum. Le prix se déplace à l'intérieur de la barre sans changer son extrema. Puisque les extrema ne changent pas, le premier rayon devrait rester immobile et ne pas bouger. Mais ce n'est pas le cas. Le premier rayon saute. Change sa position. Il s'agit simplement d'une description de la manifestation externe de l'instabilité. Si l'algorithme fonctionne de manière stable et que les paramètres du marché (maximum et minimum de la dernière barre), dont dépend l'opération de zigzag, ne changent pas, le premier rayon ne devrait pas faiblir. J'ai moi-même lutté contre ce problème. Mais les particularités remarquées des fonctions de recherche m'ont obligé à aller sur le forum.
========================
Lorsque nous déplaçons la fenêtre (shift,shift+ExtDepth) pendant le calcul de l'indicateur, l'apparition d'un nouvel extremum peut être liée soit à un nouveau prix, soit au fait que l'ancien extremum a quitté la fenêtre. - Il serait préférable de le spécifier explicitement. Pour que ce soit clair. Dans la description de la langue. Pour ne pas explorer les possibilités cachées de la langue.
À cette fin, la ligne if(highpos!=shift) val=0.0 ; . Je ne comprends pas comment cela est fait dans le code standard. Si l'on en juge par le fait que les extrema pendants disparaissent dans ma variante, cela est soit mal fait, soit pas fait du tout. - Ma solution à ce problème est différente : si (High[shift]=val) ZigZagBuffer[shift]=val ; et si (Low[shift]=val) ZigZagBuffer[shift]=val ;
. Mais en fait, c'est la même chose. Mais cela ne résout pas tous les problèmes. C'est la façon dont nous combattons la conséquence et non la cause. J'ai essayé de combattre la conséquence de la même manière. Mais sur le premier rayon, cela ne fonctionne pas. Le fait est que l'algorithme zigzag, disons, ne dissèque pas. Laissez-moi vous expliquer. Le calcul est effectué sur l'ensemble de l'historique. Et si nous en corrigeons une partie, le traitement reste encore incomplet près de la barre du zéro, pour ainsi dire. Je ne trouve pas les mots justes. Cette incomplétude près de la barre du zéro fait donc ressortir le problème de l'identification correcte des extrema.
J'ai essayé d'ajuster les paramètres de la fenêtre (shift,shift+ExtDepth) il n'y a pas si longtemps. J'ai fait des expériences avec la fenêtre l'autre jour aussi. Mais jusqu'à présent sans résultat.
Ce problème est connu et est résolu théoriquement (j'ai l'algorithme dans ma tête depuis longtemps). Quoi qu'il en soit, si aucune autre solution n'apparaît, je vais optimiser l'algorithme Zigzag. La procédure est la suivante :
1) le premier passage est effectué sur l'ensemble de l'historique comme dans l'algorithme actuel
2) à chaque tick de la barre zéro jusqu'à la fin de l'historique, deux extrema du zigzag sont recherchés, le dernier extremum est tué de force.
3) à partir de l'avant-dernier (maintenant le dernier), la procédure standard de calcul ZigZag est à nouveau exécutée.
4) si l'extrémité actuelle (la queue du ZigZag) peut théoriquement être un extremum (on a le plus haut du dernier bas ou vice versa), elle devient aussi un extremum.
5) avec un nouveau tic-tac en recommençant à partir du point 2)
Mais ça n'est pas arrivé. La première poutre vacille. Il change de position.
Je ne l'ai pas encore vu. Est-ce qu'il laisse une extrémité de la poutre fixe ? Et lequel. Si c'est sur la barre de zéro, il faudrait peut-être examiner de plus près les conditions dans lesquelles les variables de type double sont comparées ?
.
Cela me semble faire référence à l'algorithme plutôt qu'à la langue. Ainsi, un rappel que les fonctions dont nous discutons recherchent en fait la valeur maximale (minimale) du prix sur l'intervalle, plutôt qu'un extremum, serait approprié dans un livre ou dans certains commentaires.
.
le point 4) au tick suivant est traité avec un fichier passant par le point 2)
Ce problème est connu, et théoriquement résolu (il y a un algorithme en tête depuis longtemps).
Le problème est que je teste l'indicateur qui utilise le zigzag dans des conditions très strictes. En minutes et avec des paramètres 2-1-1. Quel est le but de ces tests ? Ce type de test révèle assez rapidement toutes les failles cachées. En outre, il est souhaitable que l'indicateur fonctionne sur tous les horizons temporels sans exception. Le marché est une chose fractale. Il y a beaucoup de gens qui font du commerce sur les minutes. Pourquoi devrions-nous les priver de l'opportunité de travailler avec l'outil familier sur de petits délais ?
J'aime mieux ma version). Il fonctionne avec des entiers. En effectuant une telle comparaison de doubles (de type Low[shift]==val), cela peut provoquer des battements.
Jusqu'à présent, je n'ai pas rencontré de difficultés à travailler avec double. Ces numéros sont conservés en mémoire sans modification. Mais ma comparaison prend les valeurs d'une seule cellule de mémoire. S'il y a un problème à cet endroit, il s'agit d'un problème de matériel (c'est-à-dire d'ordinateur). Il faut faire quelque chose avec le matériel.
Il me semble que cela ne fait pas référence à la langue, mais à l'algorithme. Ainsi, un rappel que les fonctions dont nous discutons recherchent en fait la valeur maximale (minimale) du prix sur l'intervalle, plutôt qu'un extremum, serait approprié pour un livre ou quelques commentaires.
J'ai juste appelé ça un extremum. Il s'agit en fait du maximum et du minimum de l'intervalle choisi. C'est une prononciation longue. Mais le sens est le même.
Il y en a eu pendant longtemps sur CodeBase.mql4.com. Mais cette description est très difficile à comprendre. Et contradictoire. Pendant l'été, je pense que Slava a affiné le code du zigzag. Seule une partie de la description précédente est restée sur le site après cela.
Le travail en double n'a pas posé de difficultés jusqu'à présent. Ces numéros sont conservés en mémoire sans modification. Et ma comparaison prend les valeurs d'un seul emplacement mémoire. Si un problème survient ici, c'est une question de matériel - l'ordinateur. Il faut faire quelque chose avec le matériel.