Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 790
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
La question n'a pas été écartée. Donc, tout d'abord.
Un maximum est trouvé, puis une ligne est tracée par rapport à celui-ci. La distance entre cette ligne maximale et le minimum actuel est vérifiée. S'il dépasse "Rmax", une flèche est placée sur la barre où se trouve le maximum. La flèche est placée mais pas là. Pour que ce soit clair, j'ai ajouté le tampon "BufferLow[i]" qui montre la différence et ses données peuvent être vues dans la fenêtre de l'explorateur.
C'est toujours comme ça. Vous ne pouvez pas attendre la neige en hiver) Je l'ai fait moi-même.
Si quelqu'un était tourmenté par une telle idée, voici le code :
Le Heiken Ashi intégré semble un peu sous-développé (je me demande si c'est juste moi sur le 745 ?), mais son fonctionnement est clair. Et la façon dont WmiFor est construit n'est pas claire !
Dans le code Heiken Ashi, une bougie est tirée à partir de 4 histogrammes à barres :
Autrement dit, à mesure que le nombre de tampons augmente (de 0 à 3), de nouvelles barres sont dessinées par-dessus les anciennes. L'ordre est le suivant :
LowHigh - HighLow - Open - Close.
L'ordre des chandeliers doit être le suivant pour qu'ils aient l'air comme il faut, avec leurs corps et leurs queues :
max(Open,Close)//ligne de couleur épaisse// - min(Open,Close)//blanc épais// - High//ligne de couleur épaisse// - Low//blanc épais//.
Compilons l'indicateur, mettons-le sur le graphique et voyons tous les problèmes (voir l'image).
Mais cette méthode, comme le Heiken Ashi, présente un inconvénient : sous chaque "bougie", nous avons une boucle blanche dans la couleur de fond qui recouvre tout ce qui est inférieur. Mais avec WmiFor, tout est parfait ! Des fonctionnalités non documentées?
Première image - Heiken Ashi (placé dans une fenêtre séparée), deuxième image - WmiFor, le fond est en vert clair pour plus de clarté.
Nous comparons un modèle souple et un modèle rond ? Pourquoi mettre Haken dans une fenêtre séparée s'il est conçu pour une fenêtre graphique et dessiné là comme un chandelier avec des ombres et un corps ? Si la valeur du tampon change, la même barre changera de taille et aucune nouvelle barre ne sera dessinée par-dessus.
Le MT4 ne dispose pas d'une méthode de dessin sous forme de chandeliers, donc seul un histogramme est possible, et la façon dont vous calculez les valeurs tampons ne regarde que vous. WmiFor, d'ailleurs, dessine aussi un histogramme. Mettons-le aussi dans une fenêtre séparée et regardons ses défauts ;)))
Pour que les chandeliers dans une fenêtre séparée ressemblent à des chandeliers avec des ombres, ils doivent être dessinés relativement à 0, comme l'Accélérateur. Ou vous pouvez les dessiner avec des objets, voir par exemple All_Stars.
Bonjour à tous !
J'ai le cerveau embrumé ; je n'ai pas trouvé de réponse dans la documentation, mais peut-être que quelqu'un a rencontré ce problème. Voici la ligne dans l'Expert Advisor (fraction de trades positifs) :
Print(OderPluseCount,"/",OderTotal,"=",DoubleToStr((OderPluseCount/OderTotal),2),"=",BestOd,",2/5*100,",100*2/5) ;
Imprimez-le dans le journal (par exemple) :
3/6=0.00=0 0 40
En même temps, si la solution est 1 :
3/3=1.00=1 0 40
La variable BestOd=OderPluseCount/OderTotal est de type double, les autres sont de type int.
C'est-à-dire que dès qu'une valeur inférieure à 1 est rencontrée, le compilateur la transforme automatiquement en 0... Les deux dernières expressions à partir de constantes produisent des résultats surprenants - cela ressemble à la même chose, mais pas )))).
J'ai essayé différentes substitutions et tout ce qui est supérieur à 1 a la partie fractionnaire correcte.
Bonjour à tous !
J'ai le cerveau embrumé ; je n'ai pas trouvé de réponse dans la documentation, mais peut-être que quelqu'un a rencontré ce problème. Voici la ligne dans l'Expert Advisor (fraction de trades positifs) :
Print(OderPluseCount,"/",OderTotal,"=",DoubleToStr((OderPluseCount/OderTotal),2),"=",BestOd,",2/5*100,",100*2/5) ;
Imprimez-le dans le journal (par exemple) :
3/6=0.00=0 0 40
En même temps, si la solution est 1 :
3/3=1.00=1 0 40
La variable BestOd=OderPluseCount/OderTotal est de type double, les autres sont de type int.
C'est-à-dire que dès qu'une valeur inférieure à 1 est rencontrée, le compilateur la transforme automatiquement en 0... Les deux dernières expressions à partir de constantes produisent des résultats surprenants - cela ressemble à la même chose, mais pas )))).
J'ai essayé différentes substitutions, tout ce qui est supérieur à 1 a la partie fractionnaire correcte.
Essayez ceci
DoubleToStr((double)(OderPluseCount/OderTotal),2)
Essayez ceci
DoubleToStr((double)(OderPluseCount/OderTotal),2)
Ça ne sert à rien. Mais merci.)
DoubleToStr((double)(OderPluseCount/(OderTotal*1.0)),2)
Ça marche comme ça, merci. On dirait du chamanisme ))))
Honnêtement, je suis plus préoccupé non pas par l'affichage, mais par le calcul correctde BestOd. J'ai dû le corriger aussi.
Je l'ai fait de cette façon :
BestOd=(OderPluseCount/(OderTotal*1.0)) ;
Y a-t-il une explication à cela ? Après tout, il serait très difficile de détecter cette erreur si ce n'était pas l'impression. Dans quels cas cela peut-il se produire ?
Ça marche comme ça, merci. On dirait du chamanisme ))))
Honnêtement, je suis plus préoccupé non pas par l'affichage, mais par le calcul correctde BestOd. J'ai dû le corriger aussi.
Je l'ai fait de cette façon :
BestOd=(OderPluseCount/(OderTotal*1.0)) ;
Y a-t-il une explication à cela ? Après tout, il serait très difficile de détecter cette erreur si ce n'était pas l'impression. Dans quels cas peut-elle apparaître ?
J'ai trouvé la réponse moi-même dans le livre de référence, section"Conversion de type".
Если два значения объединяются бинарным оператором, то перед выполнением операции операнд младшего типа преобразовывается к более старшему типу в соответствии с приоритетом, указанным на схеме:
Mais le type double dans ce schéma est le plus ancien. Et j'ai eu les deux int. Par conséquent, le résultat est un nombre entier. Introduction d'une constante d'un type supérieur (double, float), converti tous les int en elle.
Vous apprenez longtemps et consultez la documentation))))