Indicateur PRT pour afficher tous les niveaux symboliques

Zone de développement des applications API, des logiciels et utilitaires développés par les membres du forum
Avatar du membre
Ozmizrak
Chevalier Émérite Jedi
Messages : 3455
Enregistré le : 27 mai 2020 14:39

Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Ozmizrak »

Voici L'indicateur "NiveauxSymboliques" pour afficher les niveaux symboliques quelque soit le marché et l'unité de temps.

Code pour l'indicateur NiveauxSymboliques

Code : #

defparam CalculateOnLastBars = 1

//Violet
VioletR=128
VioletG=0
VioletB=255
//Orange
OrangeR=255
OrangeG=128
OrangeB=0
//Noir
NoirR=0
NoirG=0
NoirB=0
//Bleu
BleuR=0
BleuG=255
BleuB=255
//Vert
VertR=128
VertG=255
VertB=0
//Jaune
JauneR=128
JauneG=255
JauneB=0

If Close < 2000  Then
//------------------------------------Tous Les 25 Pour Les Marchés < 2000 --------------
X25 = 0
For I = 1 To 1000
X25 =  X25 + 25
DrawHLine (X25) Coloured(JauneR,JauneG,JauneB)
Next
EndIf

If Close < 5000  Then
//------------------------------------Tous Les 50 Pour Les Marchés < 5000-----------------
X50 = 0
For I = 1 To 500
X50 =  X50 + 50
DrawHLine (X50) Coloured(VertR,VertG,VertB)
Next
EndIf

//------------------------------------Tous Les 100 Quelque Soit Le Marché-----------------
X100 = 0
For I = 1 To 500
X100 = X100 + 100
DrawHLine (X100) Coloured(BleuR,BleuG,BleuB)
Next

//------------------------------------Tous Les 250 Quelque Soit Le Marché-----------------
X250 = 0
For I = 1 To 250
X250 = X250 + 250
DrawHLine (X250) Coloured(OrangeR,OrangeG,OrangeB)
Next

//------------------------------------Tous Les 500 Quelque Soit Le Marché-----------------
X500 = 0
For I = 1 To 100
X500 = X500 + 500
DrawHLine (X500) Coloured(VioletR,VioletG,VioletB)
Next

//------------------------------------Tous Les 1000 Quelque Soit Le Marché-----------------
X1000 = 0
For I = 1 To 50
X1000 = X1000 + 1000
DrawHLine (X1000) Coloured(NoirR,NoirG,NoirB)
Next

Return
Avatar du membre
Francis1
Le Sage
Messages : 30212
Enregistré le : 20 mars 2019 15:50

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Francis1 »

:merci:
Avatar du membre
magma57
Padawan
Messages : 448
Enregistré le : 30 avr. 2020 06:33

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par magma57 »

merci Ozmizrak

j ai essayé de l installer mais cela m ouvre un autre tableau ou il Ny a rien dedans

j ai copier coller ton code pourtant
Avatar du membre
magma57
Padawan
Messages : 448
Enregistré le : 30 avr. 2020 06:33

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par magma57 »

Sans titre.png
Sans titre.png (184.89 Kio) Vu 6200 fois
Avatar du membre
Ozmizrak
Chevalier Émérite Jedi
Messages : 3455
Enregistré le : 27 mai 2020 14:39

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Ozmizrak »

Magma,

Il faut ajouter l'indicateur dans le graphique avec le prix et non séparément.

Clique sur la molette de ton graph et ajoute le.

Exemple :
Capture20201007-3.JPG
Capture20201007-3.JPG (51.23 Kio) Vu 6198 fois
Avatar du membre
magma57
Padawan
Messages : 448
Enregistré le : 30 avr. 2020 06:33

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par magma57 »

impec cela fonctionne...

:merci:
Avatar du membre
korail
Ewok
Messages : 50
Enregistré le : 22 mai 2020 20:57

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par korail »

Merci Ozmizrak!
Avatar du membre
alainvm
Compagnon Jedi
Messages : 1010
Enregistré le : 02 févr. 2016 19:52

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par alainvm »

:merci: Ozmizrak
Avatar du membre
Ozmizrak
Chevalier Émérite Jedi
Messages : 3455
Enregistré le : 27 mai 2020 14:39

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Ozmizrak »

Mise à Jour
Version mieux adaptée à prorealtime V11
Plus rapide car il ne trace que quelques lignes en dessous et au desus du close et non de 0 à 50.000 sur le DOW par exemple. ;)
Spoiler:

Code : #

defparam drawonlastbaronly = true

//Violet
VioletR=128
VioletG=0
VioletB=255
//Orange
OrangeR=255
OrangeG=128
OrangeB=0
//Noir
NoirR=0
NoirG=0
NoirB=0
//Bleu
BleuR=0
BleuG=168
BleuB=255
//Vert
VertR=128
VertG=255
VertB=0
//Jaune
JauneR=128
JauneG=255
JauneB=0

If Close < 2000  Then
//------------------------------------Tous Les 25 Pour Les Marchés < 2000 --------------
X25 = (ROUND(close / 25) * 25)
X25 = X25 - (10 * 25)
For I = 1 To 20
X25 =  X25 + 25
DrawHLine (X25) Coloured(JauneR,JauneG,JauneB) STYLE(DOTTEDLINE,1)
DRAWTEXT("                    #X25#",barindex,X25-0,SansSerif,Bold,14) Coloured(JauneR,JauneG,JauneB)
Next
EndIf

//------------------------------------Tous Les 50 Quelque Soit Le Marché-----------------
X50 = (ROUND(close / 50) * 50)
X50 = X50 - (10 * 50)
For I = 1 To 20
X50 =  X50 + 50
DrawHLine (X50) Coloured(VertR,VertG,VertB) STYLE(LINE,1)
DRAWTEXT("                    #X50#",barindex,X50-0,SansSerif,Bold,14) Coloured(VertR,VertG,VertB)
Next

//------------------------------------Tous Les 100 Quelque Soit Le Marché-----------------
X100 = (ROUND(close / 100) * 100)
X100 = X100 - (10 * 100)
For I = 1 To 20
X100 = X100 + 100
DrawHLine (X100) Coloured(BleuR,BleuG,BleuB) STYLE(LINE,2)
DRAWTEXT("                    #X100#",barindex,X100-0,SansSerif,Bold,14) Coloured(BleuR,BleuG,BleuB)
Next

//------------------------------------Tous Les 250 Quelque Soit Le Marché-----------------
X250 = (ROUND(close / 250) * 250)
X250 = X250 - (9 * 250)
For I = 1 To 16
X250 = X250 + 250
DrawHLine (X250) Coloured(OrangeR,OrangeG,OrangeB) STYLE(LINE,2)
DRAWTEXT("                    #X250#",barindex,X250-0,SansSerif,Bold,14) Coloured(OrangeR,OrangeG,OrangeB)
Next

//------------------------------------Tous Les 500 Quelque Soit Le Marché-----------------
X500 = (ROUND(close / 500) * 500)
X500 = X500 - (6 * 500)
For I = 1 To 10
X500 = X500 + 500
DrawHLine (X500) Coloured(VioletR,VioletG,VioletB) STYLE(LINE,3)
DRAWTEXT("                    #X500#",barindex,X500-0,SansSerif,Bold,14) Coloured(VioletR,VioletG,VioletB)
Next

//------------------------------------Tous Les 1000 Quelque Soit Le Marché-----------------
X1000 = (ROUND(close / 1000) * 1000)
X1000 = X1000 - (4 * 1000)
For I = 1 To 6
X1000 = X1000 + 1000
DrawHLine (X1000) Coloured(NoirR,NoirG,NoirB) STYLE(LINE,4)
DRAWTEXT("                    #X1000#",barindex,X1000-0,SansSerif,Bold,14) Coloured(NoirR,NoirG,NoirB)
Next

Return

Voici ce qu'on obtient
Capture20201220.1.JPG
Capture20201220.1.JPG (22.69 Kio) Vu 6004 fois
Avatar du membre
Stochastic
Membre du Conseil Jedi
Messages : 16387
Enregistré le : 20 févr. 2015 06:34

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Stochastic »

Ozmizrak » mer. 7 oct. 2020 16:37

:P
Avatar du membre
Francis1
Le Sage
Messages : 30212
Enregistré le : 20 mars 2019 15:50

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Francis1 »

:merci:
Avatar du membre
Piaggio P7
Padawan
Messages : 326
Enregistré le : 28 févr. 2018 09:51

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Piaggio P7 »

Bonjour Ozmizrak,
Merci pour l'idée et merci pour la réalisation et le partage du code :top:
Un cadeau de Noël appréciable et qui est apprécié :mercichinois:
Avatar du membre
minotaur
Apprenti Jedi
Messages : 917
Enregistré le : 20 janv. 2020 19:33

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par minotaur »

Merci ! Je l'ai adapté en fonction du thème de mes graphiques sur la première version et cela me convient parfaitement.
Avatar du membre
Bobo
Membre du Conseil Jedi
Messages : 10153
Enregistré le : 01 juin 2018 13:28

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Bobo »

Merci Oz :top:
Avatar du membre
max38250
Membre du Conseil Jedi
Messages : 5379
Enregistré le : 08 août 2020 11:40

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par max38250 »

Merci
Denis18
Stormtrooper
Messages : 207
Enregistré le : 14 août 2019 08:02

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Denis18 »

Merci c'est sympa !
Avatar du membre
pat95162
Ewok
Messages : 96
Enregistré le : 12 août 2020 17:29

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par pat95162 »

Merci Ozmizrak je m'en sert c'est vraiment pratique. :merci:

Par contre j'ai vu qu'il traçais toutes les lignes 50 et 100.
Pour éviter ça tu peux ecrire :

Code : #

X50 = (ROUND(close / 50) * 50)
X50 = X50 - (10 * 50)
For I = 1 To 20
X50 =  X50 + 50
ok50 = X50 MOD 100 <> 0 and X50 MOD 250 <> 0
If ok50 Then
DrawHLine (X50) Coloured(VertR,VertG,VertB) STYLE(LINE,3)
DRAWTEXT("                    #X50#",barindex,X50-0,SansSerif,Bold,21) Coloured(VertR,VertG,VertB)
EndIf
Next

//------------------------------------Tous Les 100 Quelque Soit Le Marché-----------------
X100 = (ROUND(close / 100) * 100)
X100 = X100 - (10 * 100)
For I = 1 To 20
X100 = X100 + 100
ok100 = X100 MOD 500 <> 0
If ok100 Then
DrawHLine (X100) Coloured(BleuR,BleuG,BleuB) STYLE(LINE,3)
DRAWTEXT("                    #X100#",barindex,X100-0,SansSerif,Bold,21) Coloured(BleuR,BleuG,BleuB)
EndIf
Next
C'est juste une suggestion. Je me dis que ça dois être un peu plus rapide quand ça dois recalculer.
Avatar du membre
Ozmizrak
Chevalier Émérite Jedi
Messages : 3455
Enregistré le : 27 mai 2020 14:39

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Ozmizrak »

:top: Bien vu pat95162 :merci:
:) Tu as oublié les 1000 ;)
Avatar du membre
pat95162
Ewok
Messages : 96
Enregistré le : 12 août 2020 17:29

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par pat95162 »

Je t'en pris
Du coup je te partage tout le code.
Je ne comprenais pas pourquoi ça mettait du temps quand je changeais d'instrument. Et plus j'avais d'unités sur mon graphique plus ça mettait du temps.
J'ai trouvé en fait il faut mettre DEFPARAM CALCULATEONLASTBARS. Sinon il fait le calcul à chaque barre.
Puis j'avais tout mis dans une boucle for mais en fait ça c'était pas necessaire du coup mais voila ça me donne ça

Code : #

DEFPARAM DRAWONLASTBARONLY = TRUE
DEFPARAM CALCULATEONLASTBARS = 10

ONCE clotur = DClose(1)
//Violet
VioletR=128
VioletG=0
VioletB=255
//Orange
OrangeR=255
OrangeG=128
OrangeB=0
//Noir
NoirR=0
NoirG=0
NoirB=0
//Bleu
BleuR=0
BleuG=168
BleuB=255
//Vert
VertR=128
VertG=255
VertB=0
//Jaune
JauneR=128
JauneG=255
JauneB=0

If clotur < 2000  Then
//------------------------------------Tous Les 25 Pour Les Marchés < 2000 --------------
X25 = (ROUND(clotur / 25) * 25)
X25 = X25 - (10 * 25)
For I = 1 To 20
X25 =  X25 + 25
DrawHLine (X25) Coloured(JauneR,JauneG,JauneB) STYLE(DOTTEDLINE,1)
DRAWTEXT("                    #X25#",barindex,X25-0,SansSerif,Bold,21) Coloured(JauneR,JauneG,JauneB)
Next
EndIf

//------------------------------------Tous Les 50 Quelque Soit Le Marché-----------------
X50 = (ROUND(clotur / 50) * 50) - (5 * 50)
//------------------------------------Tous Les 100 Quelque Soit Le Marché-----------------
X100 = (ROUND(clotur / 100) * 100) - (5 * 100)
//------------------------------------Tous Les 250 Quelque Soit Le Marché-----------------
X250 = (ROUND(clotur / 250) * 250) - (4 * 250)
//------------------------------------Tous Les 500 Quelque Soit Le Marché-----------------
X500 = (ROUND(clotur / 500) * 500) - (3 * 500)
//------------------------------------Tous Les 1000 Quelque Soit Le Marché-----------------
X1000 = (ROUND(clotur / 1000) * 1000) - (2 * 1000)


For I = 1 To 10
X50 =  X50 + 50
ok50 = X50 MOD 100 <> 0 and X50 MOD 250 <> 0
X100 = X100 + 100
ok100 = X100 MOD 500 <> 0
X250 = X250 + 250
ok250 = X250 MOD 500 <> 0
X500 = X500 + 500
ok500 = X500 MOD 1000 <> 0
X1000 = X1000 + 1000
If ok50 Then
DrawHLine (X50) Coloured(VertR,VertG,VertB) STYLE(LINE,3)
DRAWTEXT("                    #X50#",barindex,X50+2,SansSerif,Bold,21) Coloured(VertR,VertG,VertB)
EndIf
If ok100 Then
DrawHLine (X100) Coloured(BleuR,BleuG,BleuB) STYLE(LINE,3)
DRAWTEXT("                    #X100#",barindex,X100+2,SansSerif,Bold,21) Coloured(BleuR,BleuG,BleuB)
EndIf
If ok250 and I <= 8 Then
DrawHLine (X250) Coloured(OrangeR,OrangeG,OrangeB) STYLE(LINE,5)
DRAWTEXT("                    #X250#",barindex,X250+2,SansSerif,Bold,24) Coloured(OrangeR,OrangeG,OrangeB)
EndIf
If ok500 and I <= 5 Then
DrawHLine (X500) Coloured(VioletR,VioletG,VioletB) STYLE(LINE,5)
DRAWTEXT("                    #X500#",barindex,X500+2,SansSerif,Bold,24) Coloured(VioletR,VioletG,VioletB)
EndIf
If I <= 3 Then
DrawHLine (X1000) Coloured(NoirR,NoirG,NoirB) STYLE(LINE,5)
DRAWTEXT("                    #X1000#",barindex,X1000+2,SansSerif,Bold,24) Coloured(NoirR,NoirG,NoirB)
EndIf
Next

Return
Avatar du membre
Pandino_cz
Ewok
Messages : 81
Enregistré le : 25 août 2020 19:38

Re: Indicateur PRT pour afficher tous les niveaux symboliques

Message non lu par Pandino_cz »

Merci beaucoup ça fonctionne très bien!