Problème de minuit ….
Forums › ProRealTime forum Français › Support ProBuilder › Problème de minuit ….
- This topic has 6 replies, 4 voices, and was last updated 10 months ago by Yvan63.
-
-
01/07/2024 at 6:26 PM #226088
Bonjour,
Je souhaiterais affiché un rectangle(en UT 2 minutes uniquement) qui engloberait une certaine période, par exemple de minuit à 08h00, ou autre période suivant les valeurs souhaitées.
Le code fonctionne tous les jours de la semaine sauf à partir du vendredi où le “minuit” de départ est commun à celui du lundi.
J’ai bien remarqué que le lundi démarrait à 000200 et non à 000000, voir même 000400 parfois, quand bien même je prendrais ceci en considération je n’arrive pas à régler le problème.J’ai tenté de différencier les jours, idem.
Sur la capture jointe on voit bien les deux rectangles de vendredi / lundi qui ont le même barindex “minuit”
Auriez-vous une solution ?
Merci pour votre aide.
1234567891011121314151617181920212223242526272829303132// Affiche un rectangle sur une période bornée par deux horairesHeureFin = 080000HeureDebut = 000000Intensite=50IF time = HeureDebut thenBindexminuit = barindexEndifIf time = HeureFin Thenperiod = barindex-BindexminuitIndexHeureFin = barindexhh = highest[period](high)ll = lowest[period](low)x1 = Bindexminuitx2 = IndexHeureFinDRAWRECTANGLE(x1,hh,x2,ll) coloured("SKYBLUE") bordercolor("BLUE") style(line,1)ENDIFRETURN01/07/2024 at 8:06 PM #22609101/07/2024 at 8:12 PM #226092Voilà ci-dessous le code édité par jc bywan que j’avais demandé pour une utilisation en ticks.
Celui-ci fonctionne dans n’importe quel timeframe et en ticks également.
L’heure début n’est pas être indiqué car le début est l’ouverture du marché ,seule l’heure de fin est obligatoire (pour moi 07h00);
de même le texte peut être enlevé par une //
1234567891011121314151617if intradaybarindex<intradaybarindex[1] thenbarredebut=barindexendifIF opentime[1]<070000 and opentime>=070000 THENhh = highest[barindex-barredebut+1](high)ll = lowest[barindex-barredebut+1](low)mm = (hh+ll)/2DRAWRECTANGLE(barredebut,hh,barindex,ll)coloured (128,64,0,200)bordercolor(128,64,0)DRAWSEGMENT(barindex,hh,barindex+70,hh) coloured (0,0,0)STYLE(line,3)DRAWSEGMENT(barindex,ll,barindex+70,ll) coloured (0,0,0)STYLE(line,3)DRAWSEGMENT(barredebut,mm,barindex+70,mm) coloured ("cyan")STYLE (line,3)DRAWTEXT("Haut asiatique",barindex+80,hh ,SansSerif,Bold,10)coloured(0,0,0)DRAWTEXT("Bas asiatique",barindex+80,ll,SansSerif,Bold,10)coloured(0,0,0)DRAWTEXT("Middle asiatique",barindex+80,mm,SansSerif,Bold,10)coloured(0,0,0)ENDIFRETURN1 user thanked author for this post.
01/08/2024 at 7:51 PM #22611401/08/2024 at 7:55 PM #226115Merci pour cette solution qui fonctionne bien.
Cependant je n’arrive pas à commencer le rectangle à une heure donnée …
Je ne comprends pas pourquoi l’instruction if time = x pour le début de la période n’est pas prise en compte ? (voir mon premier message).01/08/2024 at 8:46 PM #226119Bonsoir,
tu as 2 obstacles à franchir dans le même problème, le premier: si tu prends une égalité fixe pour des timings (lignes 8 et 15), cela ne marchera que si la bougie correspondante n’est pas vide, ce qui peut arriver sur un actif pas très liquide ou en cotation cfd nocturne sur petite ut.
Supposons ici que ton actif est suffisamment liquide pour se permettre de garder tes égalités fixes plutôt que de formuler le code de manière plus complexe gérant tous les cas de vides, et penchons-nous uniquement sur le 2e obstacle: tu sembles utiliser “time” pour l’heure qu’il est alors que c’est l’heure de clôture d’une bougie. Or, le vendredi si ton actif finit à 23h par exemple, tu n’auras pas de bougie qui termine à minuit (ni vendredi ni dimanche) pour la considérer comme nouveau “début” Bindexminuit, donc le dernier “début” Bindexminuit en mémoire (de la nuit de jeudi à vendredi) ne sera pas remplacé, et ton rectangle du lundi s’en servira comme point de départ. Tu peux donc considérer l’instruction “opentime” plutôt que “time”, opentime étant l’heure de début d’une bougie, pour remplacer la ligne 8 dans ton code par:
1if opentime = HeureDebut thensi ton actif a bien une bougie qui commence à “HeureDebut” personnalisable dans la nuit de dimanche à lundi (cf risque du premier problème mentionné, pas de bougie vide), alors ton rectangle du lundi démarrera comme souhaité sur un nouveau Bindexminuit dans la nuit de dimanche à lundi.
1 user thanked author for this post.
01/09/2024 at 11:03 AM #226137Merci pour l’explication, en précisant un intervalle de 2 minutes avec l’instruction opentime j’arrive à la solution suivante qui permet de personnaliser l’heure de début.
👍123456789101112131415161718192021222324252627282930// Affiche un rectangle sur une période bornée par deux horairesHeureFin = 080000HeureDebut = 000000Intensite=50IF opentime > HeureDebut and opentime <= HeureDebut + 200 then // 200 = 2 minutesBindexminuit = barindexendifIf time = HeureFin Thenperiod = barindex-BindexminuitIndexHeureFin = barindexhh = highest[period](high)ll = lowest[period](low)x1 = Bindexminuitx2 = IndexHeureFinDRAWRECTANGLE(x1,hh,x2,ll) coloured("lightBLUE") bordercolor("BLUE") style(line,1)ENDIFRETURN -
AuthorPosts
Find exclusive trading pro-tools on