point bas et haut de deux périodes successives
Forums › ProRealTime forum Français › Support ProBuilder › point bas et haut de deux périodes successives
- This topic has 8 replies, 2 voices, and was last updated 1 month ago by
gbzh.
-
-
05/15/2025 at 6:58 PM #247176
Bonjour,
j’aimerai déterminer deux points, l’un étant le “a” plus bas d’une section et l’autre le plus haut “b” d’une section suivante.
La 1ère période commence lorsque tenkan croise à la baisse kijun et se termine lorsque tenkan re-croise kijun à la hausse juste après. Puis la 2e période commence avec ce même croisement puis se termine par le croisement de tenkan à la baisse de kijun.
le point a est le plus bas de la 1ère période et b le plus haut de la 2e période.
mon code ne donne rien. merci de votre aide.
voici une image en pièce jointe
ligne bleue tenkan, rouge kijun. fleche verte point a, fleche rouge point b. 1ere fleche noire, le premier croisement à la baisse de kijun par tenkan. 2e fleche le croise de tenkan à la hausse de kijun. 3e fleche, le croisement de tenkan à la baisse de kijun.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576// === Paramètres Ichimoku ===tenkanPeriod = 9kijunPeriod = 26n = 500 // profondeur de rechercheTimeFrame(5minute)// === Ichimoku ===Tenkan = (highest[tenkanPeriod](High) + lowest[tenkanPeriod](Low)) / 2Kijun = (highest[kijunPeriod](High) + lowest[kijunPeriod](Low)) / 2// === Recherche du 1er croisement baissier (Tenkan < Kijun)croisementBas1 = -1FOR i = n DOWNTO 1 DOIF Tenkan[i] < Kijun[i] AND Tenkan[i-1] >= Kijun[i-1] THENcroisementBas1 = iBREAKENDIFNEXT// === Recherche du croisement haussier suivant (Tenkan > Kijun)croisementHaut = -1IF croisementBas1 > 0 THENFOR i = croisementBas1 - 1 DOWNTO 1 DOIF Tenkan[i] > Kijun[i] AND Tenkan[i-1] <= Kijun[i-1] THENcroisementHaut = iBREAKENDIFNEXTENDIF// === Recherche du 2e croisement baissier (Tenkan < Kijun)croisementBas2 = -1IF croisementHaut > 0 THENFOR i = croisementHaut - 1 DOWNTO 1 DOIF Tenkan[i] < Kijun[i] AND Tenkan[i-1] >= Kijun[i-1] THENcroisementBas2 = iBREAKENDIFNEXTENDIF// === Point A : plus bas entre croisementBas1 et croisementHautpointA = -1valA = highIF croisementBas1 > 0 AND croisementHaut > 0 THENFOR i = croisementBas1 DOWNTO croisementHaut DOIF Low[i] < valA THENvalA = Low[i]pointA = BarIndex - iENDIFNEXTENDIF// === Point B : plus haut entre croisementHaut et croisementBas2pointB = -1valB = lowIF croisementHaut > 0 AND croisementBas2 > 0 THENFOR i = croisementHaut DOWNTO croisementBas2 DOIF High[i] > valB THENvalB = High[i]pointB = BarIndex - iENDIFNEXTENDIF// === Affichage flèchesIF pointA > 0 THENDRAWARROWUP(pointA, valA - AverageTrueRange[5](Close)) COLOURED("green")ENDIFIF pointB > 0 THENDRAWARROWDOWN(pointB, valB + AverageTrueRange[5](Close)) COLOURED("red")ENDIFRETURN 005/15/2025 at 7:02 PM #24717705/15/2025 at 8:05 PM #247179Bonsoir,
Les boucles rallongent les temps de calcul, on peut développer une logique différente sans boucle de la façon suivante, l’exécution sera plus rapide, tout en tournant sur l’intégralité de l’historique sans se limiter à une profondeur de recherche de 500. On peut avoir ainsi tous les A et B successifs au lieu des 2 derniers. A tester:
12345678910111213141516171819202122232425262728293031323334353637383940once barreA=0once barreB=0// === Ichimoku ===tenkanPeriod = 9kijunPeriod = 26Tenkan = (highest[tenkanPeriod](High) + lowest[tenkanPeriod](Low)) / 2Kijun = (highest[kijunPeriod](High) + lowest[kijunPeriod](Low)) / 2// Periode 1if tenkan crosses under kijun thenbarreA=barindexvalA=lowDRAWARROWDOWN(barreB, valB + AverageTrueRange[5](Close)) COLOURED("red")endifif tenkan<kijun thenif low<ValA thenbarreA=barindexValA=lowendifendif// Periode 2if tenkan crosses over kijun thenbarreB=barindexvalB=highDRAWARROWUP(barreA, valA - AverageTrueRange[5](Close)) COLOURED("green")endifif tenkan>kijun thenif high>ValB thenbarreB=barindexValB=highendifendifreturn1 user thanked author for this post.
05/16/2025 at 9:54 AM #24718305/16/2025 at 4:12 PM #247205et maintenant j’essaye de mettre des extensions fibonacci en me basant sur ces deux points, mais encore une fois, mon résultat n’est pas satisfaisant. meme la largeur voulue du segment entre les deux points, je n’y arrive pas.
si vous pouviez m’aider encore une fois 🙂
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051// === Initialisations persistantes ===ONCE barreA = 0ONCE barreB = 0ONCE valA = 0ONCE valB = 0// === Ichimoku ===tenkanPeriod = 9kijunPeriod = 26Tenkan = (highest[tenkanPeriod](High) + lowest[tenkanPeriod](Low)) / 2Kijun = (highest[kijunPeriod](High) + lowest[kijunPeriod](Low)) / 2// === Période 1 : point A (croisement baissier)if Tenkan crosses under Kijun thenbarreA = barindexvalA = Low // ← bas absolu de la bougie ADRAWARROWDOWN(barreB, valB + AverageTrueRange[5](Close)) COLOURED("red")endifif Tenkan < Kijun and Low < valA thenbarreA = barindexvalA = Lowendif// === Période 2 : point B (croisement haussier)if Tenkan crosses over Kijun thenbarreB = barindexvalB = High // ← haut absolu de la bougie BDRAWARROWUP(barreA, valA - AverageTrueRange[5](Close)) COLOURED("green")// === Extensions de Fibonacci à partir de A → Becart = valB - valAlargeur = barreB - barreAfib127 = valA + ecart * 1.27fib161 = valA + ecart * 1.618fib261 = valA + ecart * 2.618finFib = barreB + largeurDRAWSEGMENT(barreB, fib127, finFib, fib127) COLOURED("gray")DRAWSEGMENT(barreB, fib161, finFib, fib161) COLOURED("gray")DRAWSEGMENT(barreB, fib261, finFib, fib261) COLOURED("gray")endifif Tenkan > Kijun and High > valB thenbarreB = barindexvalB = Highendifreturn05/16/2025 at 5:11 PM #247209Si je comprends ce que tu veux faire, verticalement c’est l’écart entre A et B pour calculer les niveaux, ça ok… mais horizontalement tu veux les tracés de où à où? A priori tu veux tracer à partir du point B des segments vers la droite, mais si tu dis que tu n’arrives pas à avoir “la largeur voulue”, alors je ne peux pas partir de la largeur telle que codée pour en déduire sa valeur, tu veux un report à droite de la largeur AB? Une largeur fixe choisie d’avance? Autre?
05/16/2025 at 6:02 PM #24721205/16/2025 at 6:20 PM #247213Ok, dans ce cas je modifierais ainsi calcul et tracé des extensions. J’ai rajouté des commentaires pour mieux comprendre le rôle de chaque IF dans les calculs de valA et valB, ce qui permet aussi de mieux comprendre pourquoi je trace les extensions dans le IF de l’autre cross. A tester:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950ONCE barreA = 0ONCE barreB = 0ONCE valA = 0ONCE valB = 0// === Ichimoku ===tenkanPeriod = 9kijunPeriod = 26Tenkan = (highest[tenkanPeriod](High) + lowest[tenkanPeriod](Low)) / 2Kijun = (highest[kijunPeriod](High) + lowest[kijunPeriod](Low)) / 2// === Période 1 : point A (croisement baissier)if Tenkan crosses under Kijun thenbarreA = barindexvalA = Low // ← Initialisation bas absolu de la bougie A en début de période 1DRAWARROWDOWN(barreB, valB + AverageTrueRange[5](Close)) COLOURED("red") // Tracé de B en fin de période 2 (puisqu'on est en début de période 1)// === Extensions de Fibonacci à partir de A → Becart = valB - valA[1]//largeur = barreB - barreA[1]fib127 = valA + ecart * 1.27fib161 = valA + ecart * 1.618fib261 = valA + ecart * 2.618//finFib = barreB + largeurDRAWSEGMENT(barreA[1], fib127, barreB, fib127) COLOURED("gray")DRAWSEGMENT(barreA[1], fib161, barreB, fib161) COLOURED("gray")DRAWSEGMENT(barreA[1], fib261, barreB, fib261) COLOURED("gray")endifif Tenkan < Kijun and Low < valA thenbarreA = barindexvalA = Low // ← Mise à jour bas absolu de la bougie A en cours de période 1endif// === Période 2 : point B (croisement haussier)if Tenkan crosses over Kijun thenbarreB = barindexvalB = High // ← Initialisation haut absolu de la bougie B en début de période 2DRAWARROWUP(barreA, valA - AverageTrueRange[5](Close)) COLOURED("green") // Tracé de A en fin de période 1 (puisqu'on est en début de période 2)endifif Tenkan > Kijun and High > valB thenbarreB = barindexvalB = High // ← Mise à jour bas absolu de la bougie B en cours de période 2endifreturn05/16/2025 at 8:34 PM #247216 -
AuthorPosts
Find exclusive trading pro-tools on