Histogramme 4 couleurs fonction prix / moyennes mobiles
Forums › ProRealTime forum Français › Support ProBuilder › Histogramme 4 couleurs fonction prix / moyennes mobiles
- This topic has 5 replies, 2 voices, and was last updated 3 years ago by danielsimeon.
-
-
02/10/2021 at 11:45 PM #161000
Bonsoir,
Je cherche à créer un indicateur simple qui apparaît sous forme d’un histogramme en fonction des conditions remplies.
J’ai plusieurs problèmes.
1/ Le premier c’est que je peux avoir toutes les conditions qui sont bonnes et pourtant je n’ai pas la couleur correspondante.
Par exemple, une valeur croissante et qui est au dessus de ces 3 moyennes n’apparait pas toujours en bleu (problème d’initialisation de ma variable ?)
2/ Mon ordre soucis qui n’est secondaire pour le moment c’est que je n’arrive pas à rajouter l’indicateur sur mon graphique.
J’ajoute un indicateur RSI (ou autre). J’ajoute ensuite mon indicateur et je cache le RSI pour avoir mon histogramme.
Mais c’est de la bidouille.
Merci d’avance !!
Daniel
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758MM50 = average [50]MM100 = average [100]MM200 = average [200]// conditions sur les moyennes mobiles et le prixc1 = close >= MM50c2 = MM50 >= MM100c3 = MM100 >= MM200// initialisation de l'indicateur// valeur utile ?indicateur = 0// Les 4 résulats possibles. Toutes les conditions remplies, aucunes, 1 sur 3 ou 2 sur 3// 3 conditions de remplies sur 3Achat = c1 and c2 and c3// 2 conditions de remplies sur 3AchatAttente = (c1 and c2 and not c3) or (c1 and c3 and not c2) or (c2 and c3 and not c1)// 1 condition de remplie sur 3VenteAttente = (c1 and not c2 and not c3) or (not c1 and c2 and not c3) or (not c1 and not c2 and c3)// // Aucune condition de remplie sur 3Vente = not c1 and not c2 and not c3if Vente thenindicateur = 1r=0g=0b=0elsif AchatAttente thenindicateur = 1r=144g=238b=144elsif VenteAttente thenindicateur = 1r=255g=0b=255elsif Achat thenindicateur = 1r=0g=255b=255endifreturn indicateur coloured(r,g,b)style(histogram)02/11/2021 at 12:25 AM #161003Je viens de me rendre compte que mon indicateur s’affichait sur certains graphiques directement que pour d’autres les prix ont tellement augmenté qu’il faut dézoomer pour avoir accès à l’histogramme.
Le bon côté des choses c’est que mon premier problème a disparu. La bidouille d’afficher l’histogramme sur le RSI faisait que l’histogramme était un indicateur du RSI et non des prix.
Maintenant il me reste à régler mon problème pour ne pas avoir à dézoomer quand il y a une trop grande variation de prix (ou si le prix ne bouge pas depuis longtemps l’histogramme prend la moitié de l’écran…)
02/11/2021 at 9:59 AM #161031Bonjour, pour ton 2e problème, est-ce que tu parles de dézoomer parce que tu as mis l’indicateur dans la fenêtre du prix? Si oui, tu peux considérer le mettre en fenêtre séparée sous le prix, pas dans le rsi comme précédemment mais dans une fenêtre séparée créée spécifiquement pour ton indicateur, de sorte que tu n’auras pas besoin d’ajuster le zoom de la fenêtre du prix. Et aussi rajouter un 0 dans ta ligne “return” pour que ton histogramme remplisse cette fenêtre du pied à la tête des barres, sinon il te mettra que le haut de l’histogramme jusqu’à mi-fenêtre et laissera une moitié de fenêtre inutilement vide.
Si besoin, le bouton pour ajouter un indicateur de cette façon, plutôt que dans une fenêtre prix ou indic déjà existante, est situé en bas à gauche de la fenêtre du graphe en v11, et on peut rajouter le mot “indicateurs” dans ce bouton via les options s’il n’y est pas (cf images attachées).
02/11/2021 at 1:19 PM #161066Ah super merci.
Effectivement j’aurais pu trouver la solution par moi même..
Par contre le “return 0” je n’y aurais pas pensé.
Dernière question. Si jamais je veux rajouter une nouvelle condition, avec ma façon de procéder je vais devoir ajouter énormément de lignes.
Avec 4 conditions c’est encore possible.
Mais avec 5 ou plus je vais y passer pas mal de temps pour rien j’imagine.
Encore merci pour la première réponse !
02/11/2021 at 1:47 PM #161071Si tu veux généraliser à 5 ou plus, pour écrire ton code plus vite avec N conditions pour tout N>=5, en les appelant de c1 à cN (N connu), tu peux créer la somme de c1+c2+…+cN. Comme chaque condition vaut 0 ou 1, cette somme sera donc forcément entre 0 et N.
De là tu peux vérifier si la somme est égale à 0 (aucune réalisée) ou 1 (une seule réalisée, peu importe laquelle), …etc… , N-2 (il n’en manque que 2), N-1 (il en manque une), N (toutes réalisées), sans avoir besoin de définir individuellement tous les cas avec des “and”, “or” et “not”. Et en déduire si tes variables achat, vente et autres sont mises à 1 ou pas. Dans ce cas il faut les initialiser à 0 pour éviter que les 1 se propagent d’une barre à l’autre.
123456789101112131415161718achat=0achatattente=0venteattente=0vente=0Somme=c1+c2+c3+c4+c5+c6+c7+c8 // cas N=8If somme=8 then // toutes réaliséesachat=1elsif somme=7 then // il en manque une...elsif somme=6 then // il en manque 2...etc......elsif somme=0 then // aucunevente=1endif02/11/2021 at 2:37 PM #161089Merci pour l’explication très claire !
Bonne journée à vous
-
AuthorPosts
Find exclusive trading pro-tools on