Historique des prix, combien de fois le prix a t’il coupé un niveau ?
Forums › ProRealTime forum Français › Support ProBuilder › Historique des prix, combien de fois le prix a t’il coupé un niveau ?
- This topic has 20 replies, 4 voices, and was last updated 1 year ago by sharteel.
-
-
05/25/2022 at 5:33 AM #193816
Première remarque, en faisant un return de “MaxTouch2” j’arrive à avoir le niveau (prix) du ‘touch’ le plus grand, mais uniquement à partir du moment ou je ‘valide’ le code.
Je n’ai pas ‘avant’, est se lié à “IsLastBarUpdate”?
C’est bon, j’ai trouvé la parade, si j’enlève IsLastBarUpdate plus gourmand en chargement et calcul, mais cela fonctionne.
10/19/2022 at 5:09 AM #202804Bonjour Nicolas,
Je me permets de revenir vers toi concernant ce code que tu m’as déjà aidé à construire (une nouvelle fois, merci).
Toujours dans la volonté de visualiser les niveaux de prix les plus “croisés” j’ai un peu continué à creuser mais, je tombe de nouveau sur un os!
Le code comptabilise correctement le nombre de fois que le “cours” croise un niveau de prix, mais je souhaite (dans un premier temps) récupérer le niveau ou le nombre de croisements est le plus grand.
J’ai donc essayé d’utiliser “ArrayMax”.
Mais je doute que cela soit la bonne technique (ou bien je ne le fais pas correctement) car lorsque que je lui demande de tirer une demie droite, je ne parvient pas à l’avoir au bon niveau.Aurais tu un conseil pour m’orienter dans la bonne direction?
Également, une idée de comment gérer les “doublons”, lorsque plusieurs niveaux de prix ont été croisés le même nombre de fois?Par la suite, idéalement, j’aimerais avoir une demie droite dessinée sur les 2, 3, 4… X plus grands nombres de croisements.
Même si je sais déjà que je vais devoir démêler le problème que pour une certaine zone de prix, “20” croisements c’est beaucoup et un niveau sur lequel il faut une demie droite, mais dans une autre zone de prix, “20” ne sera pas du tout pertinent…Un immense merci à toi,
N’hésite pas à me dire si je n’ai pas été clair et que mon message manque de sens.(PS : Je suis sur le S&P en 1min)
/////
Le code :
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677defparam drawonlastbaronly = true//_________________________________________________________ TIMINGHeures = HourMiinutes = MinuteSecondes = SecondHeureDebutChandelle = HeureFinChandelle[1]HeureFinChandelle = Hour * 10000 + Miinutes * 100 + Secondesif HeureFinChandelle < HeureFinChandelle[1] thenHeureDebutChandelle = 0endif//______________________________________________ NOMBRE CHANDELLESNombreChandelles = 1if HeureDebutChandelle > HeureDebutChandelle[1] thenNombreChandelles = NombreChandelles[1] + 1endif//__________________________________________________ INFOS JOURNEEif NombreChandelles < NombreChandelles[1] thenDebutJournee = barindexOuvertureJournee = openPlusBasJournee = LowPlusHautJournee = Highendifif Low <= PlusBasJournee thenPlusBasJournee = Lowendifif Low > PlusBasJournee thenPlusBasJournee = PlusBasJournee[1]endifif High >= PlusHautJournee thenPlusHautJournee = Highendifif High < PlusHautJournee thenPlusHautJournee = PlusHautJournee[1]endif//__________________________________________________PrixTest = PlusBasJourneeif islastbarupdate thenwhile PrixTest <= PlusHautJournee doTouch = 0for i = 0 to NombreChandelles doif High[i] >= PrixTest and Low[i] <= PrixTest thenTouch=Touch + 1$Touch[i] = Touchr = min($Touch[i]*10,255)$Price[Touch]=PrixTestendifnextdrawtext("#Touch#",barindex+10,PrixTest,SansSerif,Standard,10) coloured (255,255,255)drawtext("#PrixTest#",barindex+20,PrixTest,SansSerif,Standard,10) coloured (255,255,255)drawtext("█",barindex+5,PrixTest) coloured(r,0,0)PrixTest = PrixTest + 0.25MaxTouch = arraymax($Touch)PrixMaxTouch = $Price[MaxTouch]wenddrawray (barindex[NombreChandelles], PrixMaxTouch, barindex, PrixMaxTouch)endif//__________________________________________________return10/19/2022 at 5:11 AM #20280610/19/2022 at 10:11 AM #202817Tu utilises mal ArrayMax. Cela va te donner la valeur maximale stocké dans l’array mais pas le numéro de la colonne.
Bref, j’ai fait plus simple avec une simple condition pour tester si la quantité de touch est supérieure à celle stocké et si oui alors on récupère la valeur du prix.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980defparam drawonlastbaronly = true//_________________________________________________________ TIMINGHeures = HourMiinutes = MinuteSecondes = SecondHeureDebutChandelle = HeureFinChandelle[1]HeureFinChandelle = Hour * 10000 + Miinutes * 100 + Secondesif HeureFinChandelle < HeureFinChandelle[1] thenHeureDebutChandelle = 0endif//______________________________________________ NOMBRE CHANDELLESNombreChandelles = 1if HeureDebutChandelle > HeureDebutChandelle[1] thenNombreChandelles = NombreChandelles[1] + 1endif//__________________________________________________ INFOS JOURNEEif NombreChandelles < NombreChandelles[1] thenDebutJournee = barindexOuvertureJournee = openPlusBasJournee = LowPlusHautJournee = Highendifif Low <= PlusBasJournee thenPlusBasJournee = Lowendifif Low > PlusBasJournee thenPlusBasJournee = PlusBasJournee[1]endifif High >= PlusHautJournee thenPlusHautJournee = Highendifif High < PlusHautJournee thenPlusHautJournee = PlusHautJournee[1]endif//__________________________________________________PrixTest = PlusBasJourneeif islastbarupdate thenwhile PrixTest <= PlusHautJournee doTouch = 0//prixmaxtouch = 0for i = 0 to NombreChandelles doif High[i] >= PrixTest and Low[i] <= PrixTest thenTouch=Touch + 1$Touch[i] = Touchr = min($Touch[i]*10,255)if touch>previoustouch thenprevioustouch=touchprixmaxtouch=PrixTestendifendifnextdrawtext("#Touch#",barindex+10,PrixTest,SansSerif,Standard,10) //coloured (255,255,255)drawtext("#PrixTest#",barindex+20,PrixTest,SansSerif,Standard,10) //coloured (255,255,255)drawtext("█",barindex+5,PrixTest) coloured(r,0,0)PrixTest = PrixTest + 0.25wenddrawray (barindex[NombreChandelles], PrixMaxTouch, barindex, PrixMaxTouch)endif//__________________________________________________return1 user thanked author for this post.
10/19/2022 at 10:34 AM #202818Merci beaucoup pour ton retour Nicolas!
Effectivement j’avais vu que ArrayMax n’était pas bon dans mon utilisation!
Merci pour ton éclaircissement!Je regarde en détails dès que possible!
Et je me permettrai de revenir vers toi si besoin concernant la possibilité de faire la même chose mais avec les 2/3/…/x valeurs de touch les plus grandes!Un immense merci!
12/28/2022 at 11:11 AM #206391 -
AuthorPosts
Find exclusive trading pro-tools on