Tracé quotidien 3 lignes horizontales : 17h30 / 8h /9h
Forums › ProRealTime forum Français › Support ProBuilder › Tracé quotidien 3 lignes horizontales : 17h30 / 8h /9h
- This topic has 16 replies, 5 voices, and was last updated 4 years ago by jeanguy.
-
-
11/24/2018 at 9:16 AM #85625
Bonjour,
Vu mon niveau de programmation sur PRT, je cherchais un indicateur déjà prêt , qui affiche chaque jour, trois lignes horizontales sur le DAX :
Première ligne, le niveau de la clôture de la veille 17h30
Deuxième lignes, le niveau de l’ouverture de l’Open, 8h00
Troisième lignes, le niveau de l’ouverture de l’Open Cash, 9h00
Comme pour le pivot, la possibilité d’afficher les jours précédents, mais donc afficher uniquement ses trois niveaux (Par exemple de 8h (pour les 2 premiers) à -17h30)
J’ai essayé de chercher à droite à gauche, je ne trouve rien. Pourtant ses trois niveaux étant importants, je suis curieux de ne rien trouver, ou bien y a t il une solution déjà intégré dans la plateforme?
J’ai tenté de commencer un code… mais étant totalement nul, j’ai arrêté les dégâts!
J’espère que mon message est clair, si besoin je pourrais poster un exemple.
Merci beaucoup de votre aide / conseil .
Bonne journée, bon weekend à vous
11/26/2018 at 3:47 PM #85752A voir avec ce petit bout d’indicateur :
1234567891011121314151617181920// --- settingsDaysBefore = 3// --- end of settingsidate=date//plot Open/closeif today-idate<=DaysBefore thenif time=173000 thendrawhline(close) coloured(100,100,69)endifif time=080000 thendrawhline(close) coloured(200,50,69)endifif time=090000 thendrawhline(close) coloured(150,50,32)endifendifreturnLa variable “DaysBefore” étant la quantité de journées à afficher.
12/13/2018 at 8:34 AM #86987Merci.
J’ai essayé différentes manipulations, ce sont toujours des lignes droites . J’ai essayé de chercher des segment layouts
Je vais essayer de trouver un code comme le pivot qui change chaque jour , ça devrait m’aider.
12/13/2018 at 3:47 PM #87026Hello, Sur base du code de Nicolas, je l’ai mis un peu à ma sauce pour ne garder que les lignes du jour avant et du jour même. Je l’utilise sur l’UT 2min, heure à adapter si nécessaire pour d’autre UT. 9h02 est l’heure officiel d’ouverture du marché cash. S’affiche également un petit texte pour s’y retrouver durant la journée
123456789101112131415161718192021222324252627282930313233343536idate=date//plot Open/closeif today-idate<=1 thenif time=173000 thenfermcash=closeFermday=dayFermmonth=month//drawhline(close) coloured(100,100,69)endifif time=080200 thenOuvFut=OpenOuvday=dayOuvmonth=month//drawhline(close) coloured(200,50,69)endifif time=090200 thenOuvcash=OpenOuvday=dayOuvmonth=month//drawhline(close) coloured(150,50,32)endifendifIf time=currenttime-10000 Thendrawtext("Ferm Cash #Fermday##Fermmonth#",barindex,fermcash+2,SansSerif,standard,10)drawtext("Ouv Fut #Ouvday##Ouvmonth#",barindex,OuvFut+2,SansSerif,standard,10)drawtext("Ouv Cash #Ouvday##Ouvmonth#",barindex,Ouvcash+2,SansSerif,standard,10)Endif//returnreturn OuvFut coloured(150,50,32) STYLE(dottedline,2), OuvCash coloured(100,100,69) STYLE(dottedline,2), FermCash coloured(200,50,69) STYLE(dottedline,2)2 users thanked author for this post.
12/19/2018 at 7:51 PM #87484Rho lala
Merci beaucoup! J’avais essayé des trucs mais vu mon niveau 0 … c’était une vraie cata!
Encore merci Nicolas et Stefou
01/12/2020 at 6:18 PM #116529Bonjour,
Je continue ce post pour un indicateur de même style (Je pense que c’est plus pertinent que d’ouvrir un autre sujet).
Sur du UT M5 je cherche à tracer le plus haut et le plus bas des X précédentes bougies.
Ceci sur des périodes définis (08h00-10h00 puis 10h00-14h00…). J’aimerai que les segments restent affichés malgré le breakout.
Cf ci dessous (code qui ne fonctionne pas + photo)
123456789101112131415//RéglagesPériod1 = time >= 080000 and time < 103000Périod2 = time >= 103000 and time < 120000if Périod1 thendrawsegment(080000,highest[13],103000,highest[13]) coloured(0,0,0)drawsegment(080000,lowest[13],103000,lowest[13]) coloured(0,0,0)endifif Périod2 thendrawsegment(103000,highest[6],120000,highest[6]) coloured(0,0,0)drawsegment(103000,lowest[6],120000,lowest[6]) coloured(0,0,0)endifreturnJ’ai essayé en insérant la partie du code qui permet de faire le “reset” pour les segments, lignes INTRADAY mais cela ne marche pas.
D’autres sujet parle de cela mais ce n’est pas exactement ce dont j’ai besoin (désolé)
https://www.prorealcode.com/topic/je-cherche-a-coder-un-signal-concretise-par-une-ligne-horizontale/
https://www.prorealcode.com/topic/drawline-ht-bas-entre-2-horaires-heure-precise-pour-j-j1/
Je vous remercie de vos réponses !
01/12/2020 at 6:37 PM #116533Bonsoir, à la lecture du code trois remarques:
– les abscisses dans drawsegment doivent être des numéros de barre (barindex ou barindex[13] ou barindex[n] en définissant n ailleurs dans le programme s’il doit varier selon les cas), pas des horaires.
– l’instruction time correspond à l’horaire de clôture d’une bougie et non pas à l’heure qu’il est pendant une bougie, en conséquence dire time<103000 dans ton ut5mn ne va pas compter jusqu’à 10h30 mais jusqu’à la dernière bougie de clôture strictement inférieure à 10h30 en ut5 c’est à dire celle de 10h20 à 10h25
– j’ai le vague souvenir d’avoir lu quelque part il y a longtemps qu’il vaut mieux éviter les accents ou caractères spéciaux dans les noms de variables, mais je ne sais plus où (ni même si je ne me mélange pas les pinceaux avec un autre langage, mais par prudence j’évite les accents)
Bonne suite
01/13/2020 at 9:25 AM #116594Noobywan,
Merci de ta réponse mais je n’y arrive pas !
Je réitère donc ma demande (qui j’espère pourra servir à d’autres)
Voici la base du code :
123456789101112131415161718//Périodes d'observationsPO1 = ?PO2 = ?//Périodes de restitutionsPR1 = time > 080000 and time =< 103000PR2 = time > 103000 and time =< 120000if PR1 thendrawsegment(barindex,PO1,barindex[2],PO1) coloured(0,0,0)endifif PR2 thendrawsegment(barindex,PO2,barindex[2],PO2) coloured(0,0,0)endifreturnCe n’est pas évident ;-(
Très bonne journée à tous
01/13/2020 at 9:34 AM #11659701/13/2020 at 9:54 AM #11660301/14/2020 at 5:24 PM #116792J’ai préparé celui là mais il ne fonctionne pas non plus… Je n’ai pas bien compris la notion d’enregistrement d’une variable notamment de barindex.
Par exemple, comment enregistrer la 10ème barre avant 10h30 ?
Voici ou j’en suis (c’est moche je pense !)
123456789101112131415161718192021222324252627282930313233343536373839//Périodes sur lesquelles doivent être tracé les segmentstime1 = time > 080000 and time =< 103000time2 = time > 103000 and time =< 120000time3 = time > 150000 and time =< 170000//Périodes d'observations (PO) => Permet de stocker des coordonnées des segmentsif time1 then//PO1 = enregistrement du plus haut et plus bas de la veillehigher1 = max(higher1,Dhigh(1))lower1 = min(higher1,Dlow(1))endifif time2 then//PO2 = enregistrement des 5 chandeliers précedents 10h30higher2 = max(higher2,high[5])lower2 = min(higher2,low[5])endifif time3 then//PO3 = enregistrement des 10 chandeliers précedents 15h00higher3 = max(higher3,high[10])lower3 = min(higher3,low[10])endif//Restitutionif time1 thendrawsegment(barindex,higher1,barindex[1],higher1) coloured(0,0,0)drawsegment(barindex,lower1,barindex[1],lower1) coloured(0,0,0)endifif time2 thendrawsegment(barindex,higher2,barindex[1],higher2) coloured(0,0,0)drawsegment(barindex,lower2,barindex[1],lower2) coloured(0,0,0)endifif time3 thendrawsegment(barindex,higher3,barindex[1],higher3) coloured(0,0,0)drawsegment(barindex,lower3,barindex[1],lower3) coloured(0,0,0)endifreturnPouvez-vous m’aider ? Merci de vos retours
01/18/2020 at 1:17 PM #117155J’ai à peu près réussi mais :
- Il faut sans doute retoucher les horaires
- il y a moyen de le simplifier je pense
- Je suis en phase de test donc j’ai une autre question
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113//Reseat des variables chaque joursif intradaybarindex=0 then//Test si la première barre de la journée est bien la premièrehh1 = 0ll1 = close*10hh2 = 0ll2 = close*10hh3 = 0ll3 = close*10hh4 = 0ll4 = close*10hh5 = 0ll5 = close*10hh6 = 0ll6 = close*10endif//Période sur laquelle doivent être enregistré les plus Haut et Les plus basPO1 = time >= 000000 and time < 080000//PO1 = Période d'observation 1 etc...PO2 = time => 080000 and time < 103000PO3 = time => 103000 and time < 120000PO4 = time => 120000 and time < 133000PO5 = time => 133000 and time < 150000PO6 = time => 150000 and time < 163000//Enregistrement des plus haut et plus bas dans des variablesif PO1 then//De 00h à 08hHH1=max(high,HH1)//Enregistrement du plus haut = HH1if LL1=0 thenLL1=lowendifLL1=min(low,LL1)//Enregistrement du plus bas = LL1 etc...endifif PO2 thenHH2=max(high,HH2)if LL2=0 thenLL2=lowendifLL2=min(low,LL2)endifif PO3 thenHH3=max(high,HH3)if LL3=0 thenLL3=lowendifLL3=min(low,LL3)endifif PO4 thenHH4=max(high,HH4)if LL4=0 thenLL4=lowendifLL4=min(low,LL4)endifif PO5 thenHH5=max(high,HH5)if LL5=0 thenLL5=lowendifLL5=min(low,LL5)endifif PO6 thenHH6=max(high,HH6)if LL6=0 thenLL6=lowendifLL6=min(low,LL6)endif//Période sur laquelle doient être tracé les segmentsPR1 = time > 080000 and time =< 103000//PR1 = Période de restitution 1 etc...PR2 = time > 103100 and time =< 120000PR3 = time > 120100 and time =< 133000PR4 = time > 133100 and time =< 150000PR5 = time > 150100 and time =< 163000PR6 = time > 163100 and time =< 180000//tracé des segmentsif PR1 thendrawsegment(barindex,HH1, barindex[1],HH1)coloured(0,255,0)style(line,4)drawsegment(barindex,LL1, barindex[1],LL1)coloured(255,0,0)style(line,4)endifif PR2 thendrawsegment(barindex,HH2, barindex[1],HH2)coloured(0,255,0)style(line,4)drawsegment(barindex,LL2, barindex[1],LL2)coloured(255,0,0)style(line,4)endifif PR3 thendrawsegment(barindex,HH3, barindex[1],HH3)coloured(0,255,0)style(line,4)drawsegment(barindex,LL3, barindex[1],LL3)coloured(255,0,0)style(line,4)endifif PR4 thendrawsegment(barindex,HH4, barindex[1],HH4)coloured(0,255,0)style(line,4)drawsegment(barindex,LL4, barindex[1],LL4)coloured(255,0,0)style(line,4)endifif PR5 thendrawsegment(barindex,HH5, barindex[1],HH5)coloured(0,255,0)style(line,4)drawsegment(barindex,LL5, barindex[1],LL5)coloured(255,0,0)style(line,4)endifif PR6 thendrawsegment(barindex,HH6, barindex[1],HH6)coloured(0,255,0)style(line,4)drawsegment(barindex,LL6, barindex[1],LL6)coloured(255,0,0)style(line,4)endifreturn01/18/2020 at 1:20 PM #117158Sur la base du même principe, c’est à dire le tracé de segment en fonction des plus haut et plus bas antérieur (Segments qui doivent rester en place)
Comment écrire ?
S’il est 08h alors enregistrement du plus haut de la 10ème barre avant 8h00
Cela me permettra de faire mes tests et sans doute de simplifier le code pour les autres.
Merci
01/19/2020 at 11:36 AM #1172001234567891011121314151617181920212223242526272829303132333435//Reseat des variables chaque joursif intradaybarindex=0 then//Test si la première barre de la journée est bien la premièrehh1 = 0ll1 = close*10hh2 = 0ll2 = close*10endif//Bornes temporellesP1 = 080000P2 = 120000P3 = 180000if time = P1 thenhh1 = highest[10](high)ll1 = lowest[10](low)endifif time = P2 thenhh2 = highest[5](high)ll2 = lowest[5](low)endif//tracé des segmentsif time = P1 thendrawsegment(barindex,HH1, barindex[10],HH1)coloured(0,0,0)style(line,2)drawsegment(barindex,LL1, barindex[10],LL1)coloured(0,0,0)style(line,2)endifif time = P2 thendrawsegment(barindex,HH1, barindex[5],HH1)coloured(0,0,0)style(line,2)drawsegment(barindex,LL1, barindex[5],LL1)coloured(0,0,0)style(line,2)endifreturnBon voilà ce que j’ai pu faire.
Je rappelle que l’idée est de partir d’une heure fixe (ici 8h et 12h) et à partir cette heure fixe, aller chercher les + haut et + bas précédents pour ensuite tracer un segment vers l’avant jusqu’à la prochaine borne/heure (et ceci tous les jours).
Le code précédent (post 117155) fonctionne mais j’aimerai remplacer les tranches horaires justement par cette heure fixe.
Sur la base de ce code – qui ne fonctionne pas :
- Comment reporter les segments vers l’avant étant donné que barindex[+20] n’existe pas (On serait tous riches sinon !!)
- Comment enregistrer les derniers plus bas/plus haut depuis P2 (ici 12h) car j’ai l’impression qu’il va chercher les bonnes données depuis 8h mais pas depuis 12h
Je sais que le sujet est redondant mais en m’inspirant des autres posts (qui ne reflète pas exactement ma demande) je n’arrive pas à reproduire les codes… Je suis une quiche en programmation et je pense avoir atteint les limites de ce que je pouvais faire seul.
Je suis arrivé à mes fins avec le code précédent mais pour faire des tests multiple j’aimerai aller au bout de celui-ci… plus simple d’utilisation.
Pouvez-vous m’aider ? avec mes excuses et mes remerciements.
01/20/2020 at 5:44 PM #117336Les versions varient selon le broker, je suppose que tu es en version v10.3 ou antérieure? Le tracé “vers l’avant” par code (=à droite du prix, “dans le futur” par rapport à la barre en cours) ne sera possible qu’à partir de la version v11. En v10.3 tu ne peux que dessiner ton segment au fur et à mesure depuis le passé vers la barre en cours.
Pour ton autre question, tu fais une boucle if pour voir si on est à ton P2, et si oui tu mets dans une variable ton barindex correspondant, par exemple barP2=barindex, puis tant que tu es dans la plage horaire voulue depuis P2, tu fais un highest[barindex-barP2](high), comme ça selon que tu es en M5 ou M15 ou toute ut qui a un horaire de close compatible avec ton P2, le nombre de bougies à considérer s’ajustera.
-
AuthorPosts
Find exclusive trading pro-tools on