Recherche avec une boucle DOWNTO
Forums › ProRealTime forum Français › Support ProBuilder › Recherche avec une boucle DOWNTO
- This topic has 6 replies, 3 voices, and was last updated 2 months ago by robertogozzi.
-
-
08/24/2024 at 10:06 AM #236669
Bonjour, je souhaite trouver le barIndex correspondant au croisement de close avec price1 en partant en marche arrière à partir d’un barIndex défini mais je n’y arrive pas. Quelqu’un peut-il regarder mon code ci-dessous pour essayer de voir ce qui ne va pas ?
Merci !!
Price1 = (high + low)/2
for g = 30 downTo 0 do
once a = 1
if close[a] crosses over price1[a] then
//if open[a] <= price1[a] and close[a] > price1[] then
drawVLine(g) style (dottedLine,3)
//break
else
a = a + 1
endIf
nextif close crosses over price1 then
drawVLine(barindex)
endIfreturn
08/24/2024 at 11:47 AM #23667112345678910111213141516price1 = (high+low)/2if islastbarupdate thenfor i = 0 to 30if close[i] crosses over price1[i] thendrawVline(barindex-i)coloured("violet",100)style(dottedline,1)drawtext(barindex-i,barindex-i,10)anchor(bottom,index,yshift)breakendifnextendifreturn1234567891011121314price1 = (high+low)/2condition = (close crosses over price1)bar = barssince(condition,0)print(bar)if condition thendrawVline(barindex)coloured("violet",100)style(dottedline,1)drawtext(barindex,barindex,10)anchor(bottom,index,yshift)endifreturn close as"close", price1 as"price1" coloured("red")style(dottedline,1)08/24/2024 at 2:15 PM #236681Bonjour Druby,
Les 2 codes cherchent dans le sens des barIndex et non dans le sens inverse à partir d’un barIndex défini …
Ce que je recherche c’est trouver le premier croisement mais en repartant en arrière à partir d’un barIndex défini, c’est pour cette raison que j’ai essayé avec la fonction downTo … Exemple, rechercher le 1er croisement de close avec price1 à partir du barIndex = 30 mais cherchant en sens inverse du déroulement normal.
Un grand merci tout de même, c’est sympa !!
08/24/2024 at 4:21 PM #236684Salut Louloute, je ne suis pas sûr de suivre ta description.
Mais voici une autre tentative.
Cela commence à barindex=30, regarde en arrière vers barindex = 0
jusqu’à ce que la condition IF soit remplie ou que la boucle se termine.1234567891011121314151617181920price1 = (high+low)/2if barindex >= 30 thenfor i = 30 downto 0x = barindex-iif close[x] crosses over price1[x] thendrawVline(barindex[x])coloured("violet",100)style(dottedline,1)drawtext(barindex[x],barindex[x],10)anchor(bottom,index,yshift)breakendifnextendifreturn close as"close", price1 as"price1" coloured("red")style(dottedline,1)1 user thanked author for this post.
08/24/2024 at 4:58 PM #236686Cette version imprimera la ligne verticale sur la barre correspondant au premier croisement survenu à partir des barres arrière LOOKBACK.
baridx est le numéro BARINDEX où le croisement a eu lieu.
12345678910//defparam drawonlastbaronly = trueLookBack = 30price1 = (high+low)/2condition = (close[LookBack] crosses over price1[LookBack])IF BarIndex > LookBack THENbar = barssince(condition,0)baridx = barindex[bar + LookBack]drawVLine(baridx)ENDIFreturnPour voir les numéros BARINDEX, utilisez cet indicateur :
1RETURN BarIndex AS "BarIndex"08/26/2024 at 10:49 AM #23672008/26/2024 at 2:28 PM #236725Ceci est votre code modifié. Maintenant ça marche.
N contient le numéro de la bougie à partir de laquelle partir. Il peut aussi être 0, mais pas négatif.123456789N = 30Price1 = (high + low)/2for g = N to BarIndexif close[g] crosses over price1[g] thendrawVLine(barindex[g]) style (dottedLine,3)breakendIfnextreturn -
AuthorPosts