Affichage EMA 200 sur UT 1,5 et 15 Mn
Forums › ProRealTime forum Français › Support ProBuilder › Affichage EMA 200 sur UT 1,5 et 15 Mn
- This topic has 14 replies, 7 voices, and was last updated 1 year ago by Nicolas.
Tagged: anchor, BottomRight, dashboard
-
-
07/18/2022 at 1:16 PM #197446
Bonjour Nicolas,
J’ai besoin de votre service svp
J’ai écrit un programme pour afficher le cours d’un actif (ici le NQ) en UT 1Mn, 5 Mn, et 15 Mn, avec EMA 200 et SMA 50
Le programme m’affiche N/D, alors, j’essaye d’augmenter l’instruction CalculateOnLastBars à 10000, c’est même résultat, mais lorsque j’essaye de diminuer la valeur de EMA (50 au lieu de 200) et là, ça marche parfaitement
je souhaitre savoir d’où vient ce problème (lack of memory ?)
Voici le code mon programmeDefParam DrawOnLastBarOnly = True
DefParam CalculateOnLastBars=10000TimeFrame(15 minutes)
//—–EMA en UT 5 mn—–
My15MnEMA200 = Average[200,1](close)
My15MnSMA50 = Average[50,0](close)TimeFrame(5 minutes)
//—–EMA en UT 5 mn—–
My5MnEMA200 = Average[200,1](close)
My5MnSMA50 = Average[50,0](close)TimeFrame(1 minute, Default)
//—– Calcul du VWAP —–
d = max(1, intradaybarindex)
MyVwap = SUMMATION[d](volume*typicalprice)/SUMMATION[d](volume)
MyVwapRounded = Round(MyVwap, 2)//—–EMA en UT 1 mn—–
My1MnEMA200 = Average[200,1](close)
My1MnSMA50 = Average[50,0](close)MyPrice = Close
MyPriceRounded = Round(MyPrice, 2)//————- Les calculs commencent ici ————–
MyDiffPriceVwap = MyPriceRounded – MyVwapRoundedMy15MnAboveEMA200 = Close > My15MnEMA200
My15MnAboveSMA50 = Close > My15MnSMA50My5MnAboveEMA200 = Close > My5MnEMA200
My5MnAboveSMA50 = Close > My5MnSMA50My1MnAboveEMA200 = Close > My1MnEMA200
My1MnAboveSMA50 = Close > My1MnSMA50//============= DEBUT PROGRAMME =============
//—–Affichage Prix Actuel—–
DrawText(“Vwap : #MyVwapRounded# “, barindex-61, 9.0, SansSerif, Bold, 12) coloured(0,0,0)
DrawText(“Prix : #MyPrice# “, barindex-48, 9.0, SansSerif, Standard, 12) coloured(0,0,0)
//DrawText(“Vwap : #MyVwapRounded# “, barindex-48, 9.0, SansSerif, standard, 12)
DrawText(“Diff : #MyDiffPriceVwap# “, barindex-36, 9.0, SansSerif, standard, 12)DrawText(“EMA200 SMA50 “, barindex-39, 7.0, dialog, standard,12)
DrawText(“15 Minutes “, barindex-60, 2.0, dialog, standard,12)
DrawText(“5 Minutes “, barindex-60, 1.0, dialog, standard,12)
DrawText(“1 Minute “, barindex-60, 0.0, dialog, standard,12)//—–Affichage Ligne “15 Minutes”—–
If My15MnAboveEMA200 then
DrawText(“#My15MnEMA200#”, barindex-45, 2.0, dialog, standard,12) coloured(102,255,0) //Point Vert
Else
DrawText(“#My15MnEMA200#”, barindex-45, 2.0, dialog, standard,12) coloured(255,0,0)
Endif
If My15MnAboveSMA50 then
DrawText(“#My15MnSMA50#”, barindex-35, 2.0, dialog, standard,12) coloured(102,255,0) //Point Vert
Else
DrawText(“#My15MnSMA50#”, barindex-35, 2.0, dialog, standard,12) coloured(255,0,0)
Endif//—–Affichage Ligne “5 Minutes”—–
If My5MnAboveEMA200 then
DrawText(“#My5MnEMA200#”, barindex-45, 1.0, dialog, standard,12) coloured(102,255,0)
Else
DrawText(“#My5MnEMA200#”, barindex-45, 1.0, dialog, standard,12) coloured(255,0,0)
Endif
If My5MnAboveSMA50 then
DrawText(“#My5MnSMA50#”, barindex-35, 1.0, dialog, standard,12) coloured(102,255,0)
Else
DrawText(“#My5MnSMA50#”, barindex-35, 1.0, dialog, standard,12) coloured(255,0,0)
Endif//—–Affichage Ligne “1 Minute”—–
If My1MnAboveEMA200 then
DrawText(“#My1MnEMA200#”, barindex-45, 0.0, dialog, standard,12) coloured(102,255,0) //Point Vert
Else
DrawText(“#My1MnEMA200#”, barindex-45, 0.0, dialog, standard,12) coloured(255,0,0) //Point Rouge
Endif
If My1MnAboveSMA50 then
DrawText(“#My1MnSMA50#”, barindex-35, 0.0, dialog, standard,12) coloured(102,255,0) //Point Vert
Else
DrawText(“#My1MnSMA50#”, barindex-35, 0.0, dialog, standard,12) coloured(255,0,0) //Point Rouge
Endif//—–Affichage des échelles—–
Return -3 Coloured(0,0,0,0), 10 Coloured(0,0,0,0)Je vous remercie beaucoup
Bien cordialement07/18/2022 at 4:26 PM #19745607/18/2022 at 5:34 PM #197457BJ… Code bien formaté.
Nécessite un réglage de 2500 unités, sur le mien, avant que 15 minutes ne commencent à donner des valeurs.
TF15m + EMA200 = 15 x 200 = 3000 barre . Même si votre graphique par défaut est de 1 minute.
Aussi à partir des lignes de code 47-50 avec #…variable…# et la variable n’est pas la même doit être #variable#
Utilisez-vous V11, vous pouvez désormais “ancrer” dessiner des objets tels que du texte.
Remarque: commenté “Calculer OnLastBars = 10000” Qu’est-ce que c’était avant de le changer et quelles étaient les unités définies.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697DefParam DrawOnLastBarOnly = True//DefParam CalculateOnLastBars=10000TimeFrame(15 minutes)//—-EMA en UT 5 mn—-My15MnEMA200 = Average[200,1](close)My15MnSMA50 = Average[50,0](close)TimeFrame(5 minutes)//—-EMA en UT 5 mn—-My5MnEMA200 = Average[200,1](close)My5MnSMA50 = Average[50,0](close)TimeFrame(1 minute, Default)//—- Calcul du VWAP —-d = max(1, intradaybarindex)MyVwap = SUMMATION[d](volume*typicalprice)/SUMMATION[d](volume)MyVwapRounded = Round(MyVwap, 2)//—-EMA en UT 1 mn—-My1MnEMA200 = Average[200,1](close)My1MnSMA50 = Average[50,0](close)MyPrice = CloseMyPriceRounded = Round(MyPrice, 2)//————- Calculations start here ————-MyDiffPriceVwap = MyPriceRounded - MyVwapRoundedMy15MnAboveEMA200 = Close > My15MnEMA200My15MnAboveSMA50 = Close > My15MnSMA50My5MnAboveEMA200 = Close > My5MnEMA200My5MnAboveSMA50 = Close > My5MnSMA50My1MnAboveEMA200 = Close > My1MnEMA200My1MnAboveSMA50 = Close > My1MnSMA50//============= DEBUT PROGRAMME =============//—-Current Price Display—-DrawText ("Vwap: #MyVwapRounded#", barindex-61, 9.0, SansSerif, Bold, 12) coloured (0,0,0)DrawText ("Prix: #MyPrice#", barindex-48, 9.0, SansSerif, Standard, 12) coloured (0,0,0)//DrawText ("Vwap: #MyVwapRounded#", barindex-48, 9.0, SansSerif, standard, 12)DrawText ("Diff: #MyDiffPriceVwap#", barindex-36, 9.0, SansSerif, standard, 12)DrawText("EMA200 SMA50 ", barindex-39, 7.0, dialog, standard,12)DrawText("15 Minutes ", barindex-60, 2.0, dialog, standard,12)DrawText("5 Minutes ", barindex-60, 1.0, dialog, standard,12)DrawText("1 Minute ", barindex-60, 0.0, dialog, standard,12)//—-Affichage Ligne "15 Minutes"—-If My15MnAboveEMA200 thenDrawText("#My15MnEMA200#", barindex-45, 2.0, dialog, standard,12) coloured(102,255,0) //Point VertElseDrawText("#My15MnEMA200#", barindex-45, 2.0, dialog, standard,12) coloured(255,0,0)EndifIf My15MnAboveSMA50 thenDrawText("#My15MnSMA50#", barindex-35, 2.0, dialog, standard,12) coloured(102,255,0) //Point VertElseDrawText("#My15MnSMA50#", barindex-35, 2.0, dialog, standard,12) coloured(255,0,0)Endif//—-Affichage Ligne "5 Minutes"—-If My5MnAboveEMA200 thenDrawText("#My5MnEMA200#", barindex-45, 1.0, dialog, standard,12) coloured(102,255,0)ElseDrawText("#My5MnEMA200#", barindex-45, 1.0, dialog, standard,12) coloured(255,0,0)EndifIf My5MnAboveSMA50 thenDrawText("#My5MnSMA50#", barindex-35, 1.0, dialog, standard,12) coloured(102,255,0)ElseDrawText("#My5MnSMA50#", barindex-35, 1.0, dialog, standard,12) coloured(255,0,0)Endif//—-Affichage Ligne "1 Minute"—-If My1MnAboveEMA200 thenDrawText("#My1MnEMA200#", barindex-45, 0.0, dialog, standard,12) coloured(102,255,0) //Point VertElseDrawText("#My1MnEMA200#", barindex-45, 0.0, dialog, standard,12) coloured(255,0,0) //Point RougeEndifIf My1MnAboveSMA50 thenDrawText("#My1MnSMA50#", barindex-35, 0.0, dialog, standard,12) coloured(102,255,0) //Point VertElseDrawText("#My1MnSMA50#", barindex-35, 0.0, dialog, standard,12) coloured(255,0,0) //Point RougeEndif//—-Display scales—-Return -3 Coloured(0,0,0,0), 10 Coloured(0,0,0,0)1 user thanked author for this post.
07/18/2022 at 6:46 PM #197459Vous êtes tous formidables !!!!!
j’ai mis 100 unités seulement, et c’est pour cela que ça ne fonctionne pas, car passez d’unités pour calculer EMA 200 en UT 15 mn
Maintenant, j’ai mis 3000 unités, et c’est à merveille !
Merci beaucoup les gars !PS : j’utilise la V11
NB : Puis je supprimer la ligne CalculateOnLastBars ?
1 user thanked author for this post.
07/18/2022 at 7:00 PM #19746007/18/2022 at 7:22 PM #1974612500 unités c’est 3000 bars bizarre.
Oui, vous pouvez supprimer “CalculateOnLastBars=10000” Ceci est utilisé pour limiter le nombre de barres utilisées dans les calculs d’indicateurs pour économiser du temps et de la mémoire.
Voici une version modifiée avec le texte “Anchor -ed” que vous pouvez utiliser directement sur votre panneau de prix si vous le souhaitez. Le texte ne bouge pas lorsque vous redimensionnez votre graphique.
https://www.prorealcode.com/topic/new-drawing-instructions-anchoring-in-pixels/
Salutations.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596DefParam DrawOnLastBarOnly = True//DefParam CalculateOnLastBars=10000TimeFrame(15 minutes)//—-EMA en UT 5 mn—-My15MnEMA200 = Average[50,1](close)My15MnSMA50 = Average[50,0](close)TimeFrame(5 minutes)//—-EMA en UT 5 mn—-My5MnEMA200 = Average[200,1](close)My5MnSMA50 = Average[50,0](close)TimeFrame(1 minute, Default)//—- Calcul du VWAP —-d = max(1, intradaybarindex)MyVwap = SUMMATION[d](volume*typicalprice)/SUMMATION[d](volume)MyVwapRounded = Round(MyVwap, 2)//—-EMA en UT 1 mn—-My1MnEMA200 = Average[200,1](close)My1MnSMA50 = Average[50,0](close)MyPrice = CloseMyPriceRounded = Round(MyPrice, 2)//————- Calculations start here ————-MyDiffPriceVwap = MyPriceRounded - MyVwapRoundedMy15MnAboveEMA200 = Close > My15MnEMA200My15MnAboveSMA50 = Close > My15MnSMA50My5MnAboveEMA200 = Close > My5MnEMA200My5MnAboveSMA50 = Close > My5MnSMA50My1MnAboveEMA200 = Close > My1MnEMA200My1MnAboveSMA50 = Close > My1MnSMA50//============= DEBUT PROGRAMME =============//—-Current Price Display—-DrawText ("Vwap: #MyVwapRounded#", -240, 125, SansSerif, Bold, 12) anchor(BottomRight) coloured (0,0,0)DrawText ("Prix: #MyPrice#", -140, 125, SansSerif, Standard, 12) anchor(BottomRight) coloured (0,0,0)DrawText ("Diff: #MyDiffPriceVwap#", -50, 125, SansSerif, standard, 12) anchor(BottomRight)DrawText("EMA200 SMA50 ", -110, 100, dialog, standard,12) anchor(BottomRight)DrawText("15 Minutes ", -250, 75, dialog, standard,12)anchor(BottomRight)DrawText("5 Minutes ", -250, 50, dialog, standard,12)anchor(BottomRight)DrawText("1 Minute ", -250, 25, dialog, standard,12)anchor(BottomRight)//—-Affichage Ligne "15 Minutes"—-If My15MnAboveEMA200 thenDrawText("#My15MnEMA200#", -150, 75, dialog, standard,12) anchor(BottomRight) coloured(102,255,0) //Point VertElseDrawText("#My15MnEMA200#", -150, 75, dialog, standard,12) anchor(BottomRight) coloured(255,0,0)EndifIf My15MnAboveSMA50 thenDrawText("#My15MnSMA50#", -50, 75, dialog, standard,12) anchor(BottomRight) coloured(102,255,0) //Point VertElseDrawText("#My15MnSMA50#", -50, 75, dialog, standard,12) anchor(BottomRight) coloured(255,0,0)Endif//—-Affichage Ligne "5 Minutes"—-If My5MnAboveEMA200 thenDrawText("#My5MnEMA200#", -150, 50, dialog, standard,12) anchor(BottomRight) coloured(102,255,0)ElseDrawText("#My5MnEMA200#", -150, 50, dialog, standard,12) anchor(BottomRight) coloured(255,0,0)EndifIf My5MnAboveSMA50 thenDrawText("#My5MnSMA50#", -50, 50, dialog, standard,12) anchor(BottomRight) coloured(102,255,0)ElseDrawText("#My5MnSMA50#", -50, 50, dialog, standard,12) anchor(BottomRight) coloured(255,0,0)Endif//—-Affichage Ligne "1 Minute"—-If My1MnAboveEMA200 thenDrawText("#My1MnEMA200#", -150, 25, dialog, standard,12) anchor(BottomRight) coloured(102,255,0) //Point VertElseDrawText("#My1MnEMA200#", -150, 25, dialog, standard,12) anchor(BottomRight) coloured(255,0,0) //Point RougeEndifIf My1MnAboveSMA50 thenDrawText("#My1MnSMA50#", -50, 25, dialog, standard,12) anchor(BottomRight) coloured(102,255,0) //Point VertElseDrawText("#My1MnSMA50#", -50, 25, dialog, standard,12) anchor(BottomRight) coloured(255,0,0) //Point RougeEndif//—-Boîtes d'information—-DrawRectangle(-290,140,-10,10) anchor(BottomRight) coloured(220,220,220,100) borderColor(0,0,0,0) // Boîte extérieureDrawRectangle(-195,110,-100,10) anchor(BottomRight) coloured(211,211,211,100) borderColor(0,0,0,0) // Boîte intérieure//—-Display scales—-Return //-3 Coloured(0,0,0,0), 10 Coloured(0,0,0,0)07/18/2022 at 7:32 PM #19746207/18/2022 at 8:12 PM #19746607/18/2022 at 9:16 PM #19746907/19/2022 at 6:37 AM #197479Bonjour Merci de partager cet indicateur ! Dans la ligne 8/9, utilisez la moyenne 50, ne devrait-il pas être 200/50 ? Est-il possible de limiter les décimales de l’affichage des valeurs à 1-2 places, actuellement il y a 5 places ? D’avance merci Pierre
07/19/2022 at 8:43 AM #197488En effet, il y a une petite erreur de frappe sur la ligne 8, c’est EMA 200 et non 50
Comment partager cet indicateur, moi, personnellement, je veux bien le partager à la communautéPour limiter les décimales de l’affichage à deux, on peut utiliser rounded,2 (comme pour l’affichage du VWAP)
1 user thanked author for this post.
07/19/2022 at 9:26 AM #197493BJ…
Bien repéré ‘Razz’, et merci de l’avoir signalé. Oui tu as raison. Doit l’avoir laissé en essayant de déboguer le problème basé sur la description de ‘wtangsiri’. Va juste pour montrer toujours vérifier vous-même pour les erreurs.
8 My15MnEMA50 = Average[50,1](close)8 My15MnEMA200 = Average[200,1](close)
Concernant le d.p. vous pouvez le faire à plusieurs endroits, au début de la collecte de données ou tard juste avant l’affichage.
Si ce niveau de précession n’est pas requis, peu importe où vous le faites. Cependant, plus tard, tous les calculs peuvent être effectués avec précision, mais limitez simplement le d.p. à l’affiche. Les résultats peuvent être très différents.ROUND(<Numéro>,<dp>) Numéro – n’importe quel chiffre, dp – 0-5 0 (default) ROUND(<Numéro>)
https://www.prorealcode.com/documentation/round/
Si vous importez le fichier ci-dessous, vous pouvez comparer le rond, le plafond et le sol à partir de la fenêtre des paramètres de l’indicateur. A mis cela ensemble quand j’apprenais à les connaître. Il y a aussi des conseils pour poser des questions, si vous voyez le côté amusant. Vous devrez traduire les commentaires. copier le code.
Cordialement.
1234567891011121314151617181920212223242526272829a=1.9b=3.6c = a*bd=ROUND(a*b)drawtext(" a * b = c",0,100)anchor(middle)drawtext("#a#* #b#= #c#",0,80)anchor(middle)x =ROUND(1.9)y = ROUND(3.6)z = x * ydrawtext(" ROUND(x) * ROUND(y) = z",0,10)anchor(middle)drawtext("#x# * #y#) = #z#",0,-10)anchor(middle)//altx =1.9y = 3.6z = x * yresult = ROUND(z)drawtext(" (x) * (y) = ROUND(z)",0,-80)anchor(middle)drawtext("#x# * #y#) = #result#",0,-100)anchor(middle)return1 user thanked author for this post.
07/19/2022 at 2:17 PM #197509Voici quelques images qui montrent pourquoi le changement de 200ema a donné n/a à 50ema a donné des valeurs et aussi la différence si mal réglé.
- pic 1 50 ema @ ~ barre 736 (rouge), tandis que 200 ema @ ~ barre 2963 (vert) close (blanc)
- Pic 2 gros plan de la différence si mal réglé.
123456timeframe(15minute,updateonclose)a = average[50,1](close)b = average[200,1](close)timeframe(default) // 1 minutereturn close, a coloured("red"), b coloured("green")01/05/2023 at 12:09 AM #20680601/05/2023 at 1:10 PM #206827 -
AuthorPosts