coloriser une bougie
Forums › ProRealTime forum Français › Support ProBuilder › coloriser une bougie
- This topic has 16 replies, 4 voices, and was last updated 2 years ago by
finplus.
-
-
02/26/2023 at 12:06 PM #210518Distance close KAMA150123456789101112131415161718192021222324252627282930313233// KAMA150Period1 = 150FastPeriod1 = 2SlowPeriod1 = 30Fastest1 = 2 / (FastPeriod1 + 1)Slowest1 = 2 / (SlowPeriod1 + 1)if barindex < Period1+1 thenKama150=closeelseNum1 = abs(close-close[Period1])Den1 = summation[Period1](abs(close-close[1]))ER1 = Num1 / Den1Alpha1 = SQUARE(ER1 *(Fastest1 - Slowest1 )+ Slowest1)KAMA150 = (Alpha1 * Close) + ((1 -Alpha1)* Kama150[1])endifxClose = (Open+High+Low+Close)/4Distance = abs(xclose- kama150)if (xclose - kama150 > 0) thendrawcandle(kama150, kama150, xclose, xclose) coloured(32,0,192)elsif (kama150 - xclose) < 0 thendrawcandle(kama150, kama150, xclose, xclose) coloured(0,204,255)endifmoy = average[200](distance)return distance as "distance", moy as "moy200"
Bonjour,
je souhaiterais coloriser le calcul de la distance en fonction de la position du close : bleu si le cours est au dessus de la kama et rouge si le cours est au dessous de la kama. J’ai bien tenté avec “drawcandle” mais ça ne donne rien.
Merci pour votre aide.
02/26/2023 at 1:37 PM #21052602/26/2023 at 3:45 PM #21053402/26/2023 at 4:13 PM #21053602/26/2023 at 4:50 PM #210537La ligne 27 doit être:
1else02/26/2023 at 4:59 PM #21053802/26/2023 at 5:02 PM #21054002/26/2023 at 5:20 PM #210542Vous ne voyez pas la distance et la moyenne car elles sont à une échelle beaucoup plus petite que le prix.
Je vous conseille de créer deux indicateurs distincts, un sous le graphique (sans les bougies) et un autre sur le graphique (sans les lignes) :SUR le graphique :123456789101112131415161718192021222324252627282930313233// KAMA150Period1 = 150FastPeriod1 = 2SlowPeriod1 = 30Fastest1 = 2 / (FastPeriod1 + 1)Slowest1 = 2 / (SlowPeriod1 + 1)if barindex < Period1+1 thenKama150=closeelseNum1 = abs(close-close[Period1])Den1 = summation[Period1](abs(close-close[1]))ER1 = Num1 / Den1Alpha1 = SQUARE(ER1 *(Fastest1 - Slowest1 )+ Slowest1)KAMA150 = (Alpha1 * Close) + ((1 -Alpha1)* Kama150[1])endifxClose = (Open+High+Low+Close)/4Distance = abs(xclose- kama150)if (xclose - kama150 > 0) thendrawcandle(kama150, kama150, xclose, xclose) coloured(32,0,192)else//if (kama150 - xclose) < 0 thendrawcandle(kama150, kama150, xclose, xclose) coloured(0,204,255)endif//moy = average[200](distance)return//distance as "distance", moy as "moy200"EN DESSOUS du graphique123456789101112131415161718192021222324252627282930313233// KAMA150Period1 = 150FastPeriod1 = 2SlowPeriod1 = 30Fastest1 = 2 / (FastPeriod1 + 1)Slowest1 = 2 / (SlowPeriod1 + 1)if barindex < Period1+1 thenKama150=closeelseNum1 = abs(close-close[Period1])Den1 = summation[Period1](abs(close-close[1]))ER1 = Num1 / Den1Alpha1 = SQUARE(ER1 *(Fastest1 - Slowest1 )+ Slowest1)KAMA150 = (Alpha1 * Close) + ((1 -Alpha1)* Kama150[1])endifxClose = (Open+High+Low+Close)/4Distance = abs(xclose- kama150)if (xclose - kama150 > 0) then//drawcandle(kama150, kama150, xclose, xclose) coloured(32,0,192)else//if (kama150 - xclose) < 0 then//drawcandle(kama150, kama150, xclose, xclose) coloured(0,204,255)endifmoy = average[200](distance)return distance as "distance", moy as "moy200"02/26/2023 at 5:29 PM #210544Grazie per aver risposto alla mia richiesta.
Le problème est que si je fais comme vous me l’avez indiqué, la moyenne mobile va tendre vers 0 lorsque l’écart se réduit (c’est un sujet que je n’arrive pas à résoudre depuis des mois et des mois).
Donc j’ai opté pour calculer un écart avec “ABS” qu’il soit positif ou négatif et ainsi la moyenne mobile ne tendra jamais vers 0. Mais je voudrais différencier le sens de l’écart (positif ou négatif) par une couleur (bleue si le xclose est au dessus la kama etrouge si le xclose est au dessous de la kama).
Je ne sais pas si c’est compréhensible.
02/26/2023 at 5:40 PM #210547Vous devez vérifier si > ou < 0 AVANT d’utiliser abs().
Après cela, vous pouvez ajouter abs().
De cette façon, vous savez quelle est la position correcte.02/26/2023 at 6:24 PM #210550En fait, je ne recherche pas la position correcte. J’ai du mal m’exprimer. Ou alors il faudrait que je calcule deux moyennes mobiles : une qui est calculé uniquement lorsque l’écart xclose – kama est positif et un deuxième ou xclose – kama est négatif. Et ça, je n’y arrive pas.
02/26/2023 at 6:27 PM #21055102/26/2023 at 7:19 PM #210561Désolé, mais je ne comprends pas très bien ce que fait votre code. Dans le premier message vous parliez d'un problème de coloration, mais là je ne comprends plus très bien. Peut-être que quelqu'un parlant français pourra mieux vous aider que moi.
02/26/2023 at 7:34 PM #210566C’est moi qui m’exprime mal. Mon code mesure la distance entre la kama150 et le xclose. Cette distance est ensuite calculée en valeur absolue pour qu’elle soit toujours positive. En pratique, ce qui m’importe c’est de calculer la distance. Puis j’y applique une moyenne mobile. J’ai mis ABS parce que si je ne mets pas ABS, la moyenne mobile va bien sûr suivre l’évolution de la distance. Et dans ce cas, elle se rapprochera de 0 lorsque la distance (sans mettre ABS) passera de positive à négative et vice versa. Et dans ces conditions elle ne me servira à rien puisque je m’en sers pour filtrer mes entrées (lorsque la distance franchit la moyenne mobile).
L’idéal serait de calculer une moyenne mobile spécifique appliquée à la distance lorsque le xclose est supérieur à la kama et une moyenne mobile spécifique lorsque le xclose est inférieur à la kama. Mais je n’y arrive pas.
Grazie.
02/27/2023 at 9:23 AM #210575La version ci-dessous calcule 2 moyennes mobiles de période 200 sur les valeur de l’histogramme vert ou rouge.
1234567891011121314151617181920212223242526272829303132333435363738// KAMA150Period1 = 150FastPeriod1 = 2SlowPeriod1 = 30Fastest1 = 2 / (FastPeriod1 + 1)Slowest1 = 2 / (SlowPeriod1 + 1)if barindex < Period1+1 thenKama150=closeelseNum1 = abs(close-close[Period1])Den1 = summation[Period1](abs(close-close[1]))ER1 = Num1 / Den1Alpha1 = SQUARE(ER1 *(Fastest1 - Slowest1 )+ Slowest1)KAMA150 = (Alpha1 * Close) + ((1 -Alpha1)* Kama150[1])endifxClose = (Open+High+Low+Close)/4Distance = abs(xclose- kama150)if (xclose - kama150 > 0) thenr=0g=255distplus = distanceelser=255g=0distminus = distanceendifmoyplus = average[200](distplus)moyminus = average[200](distminus)return distance as "distance" style(histogram) coloured(r,g,0), moyplus as "moyenne plus" coloured("green") style(line,2), moyminus as "moyenne minus" coloured("crimson") style(line,2)1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on