Array: récupérer une valeur/index selon période définie
Forums › ProRealTime forum Français › Support ProBuilder › Array: récupérer une valeur/index selon période définie
- This topic has 7 replies, 2 voices, and was last updated 4 years ago by RicLg.
-
-
05/13/2020 at 6:08 PM #131546
Bonjour
C’est la 1ere fois que j’utilise Array, j’épprouve quelques difficultés.
j’ai un tableau des Top : $TopyJe souhaiterai récupérer..
1 – la valeur du top le plus haut durant les indices (1 to 15) , indice Zero n’est pas inclus dans la période
2 – ainsi que la barIndex qui lui est associé.Merci pour votre aide.
ps: Suggestion concernant Arraymax, ArrayMin
Arraymax ($variable) [période]
ArraymaxIndex ($variable) [période]05/14/2020 at 8:31 AM #131608Il faut créer 2 tableaux, l’un qui comportera le barindex et l’autre le prix associé, au même index du tableau.
Pour trouver le barindex de la valeur la plus haute du tableau du prix, alors il faudra faire une boucle entre 1 et 15. Si tu connais cet index pour le prix, alors celui du tableau de tes barindex sera le même et tu connaîtra donc la coordonnée en abscisse de ta valeur prix.
05/14/2020 at 4:23 PM #131679Bonjour
Merci Nicolas pour tes indications.
A la ligne 29, pourrai-tu m’orienter ?
Comment afficher la courbe de valeurs du tableau?
Cela me permettrait une vérification du résultat du code.
Merci pour les exemples de codes liés au Tableau/Array
Merci Nicolas
ArrayRecupValeursSelonPeriod123456789101112131415161718192021222324252627282930313233343536// https://www.prorealcode.com/topic/array-variables-availability-in-prorealtime/// (please do not remove the link above for future reference)// Example #1: support and resistance example, based on fractals pointsdefparam drawonlastbaronly=truecp=10Rem LEs Tableauxif high[cp] >= highest[(cp)*2+1](high) then //new fractal high found$TOPy[lastset($TOPy)+1] = high[cp] //store fractal value$TOPx[lastset($TOPx)+1] = barindex[cp] //store fractal barindexendifif low[cp] <= lowest[(cp)*2+1](low) then //new fractal low found$BOTy[lastset($BOTy)+1] = low[cp] //store fractal value$BOTx[lastset($BOTx)+1] = barindex[cp] //stire fractal barindexendifRem Traitementif(islastbarupdate and isset($topy[0]) and isset($boty[0])) thenonce HighestTopTmp=$TOPy[lastset($TOPy)]Rem TOPfor i = lastset($TOPy)-15 to lastset($TOPy) do // Définition de la PeriodeRem Le plus HAUT des 15 derniers indicesRem --------------------------------------if $TOPy[i]> HighestTopTmp thenHighestTopTmp=$TOPy[i]idxHighestTopTmp=$TOPx[i]endifRem Afficher la courbe du tableau $TOPyRem --------------------------------------CourbeTopArray=$TOPy[i] // comment afficher la courbe de valeurs du tableau?nextRem DRAWTEXT : Le plus HAUT des 15 derniers indicesRem --------------------------------------------------------------------DRAWTEXT("#HighestTopTmp#", idxHighestTopTmp, high[barIndex- idxHighestTopTmp],dialog,bold,20) //coloured (255,255,255,alphaTopCount))endifreturn CourbeTopArray as "CourbeTopArray"05/14/2020 at 8:34 PM #131710Par curiosité je voulais vérifier si le code fonctionne avec le critère inverse de la ligne 23
J’ai donc injecté le bloc de la ligne 29
Et voila que le code fonctionne bizarrement. Je n’y comprends plus rien.
Merci pour votre aide.
*Je suis en EoD version gratuite chez Prorealtime. Marché Euronext action
*ArrayRecupValeursSelonPeriod1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950// https://www.prorealcode.com/topic/array-variables-availability-in-prorealtime/// (please do not remove the link above for future reference)// Example #1: support and resistance example, based on fractals pointsdefparam drawonlastbaronly=truecp=10Rem LEs Tableauxif high[cp] >= highest[(cp)*2+1](high) then //new fractal high found$TOPy[lastset($TOPy)+1] = high[cp] //store fractal value$TOPx[lastset($TOPx)+1] = barindex[cp] //store fractal barindexendifif low[cp] <= lowest[(cp)*2+1](low) then //new fractal low found$BOTy[lastset($BOTy)+1] = low[cp] //store fractal value$BOTx[lastset($BOTx)+1] = barindex[cp] //stire fractal barindexendifRem Traitementif(islastbarupdate and isset($topy[0]) and isset($boty[0])) thenonce HighestTopTmp=$TOPy[lastset($TOPy)]once LowestTopTmp=$TOPy[lastset($TOPy)]Rem TOPfor i = lastset($TOPy)-15 to lastset($TOPy) do // Définition de la PeriodeRem Le plus HAUT des 15 derniers indicesRem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀if $TOPy[i]> HighestTopTmp thenHighestTopTmp=$TOPy[i]idxHighestTopTmp=$TOPx[i]endifRem Le plus BAS des 15 derniers indices // INJECTIONRem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀if $TOPy[i]< LowestTopTmp thenLowestTopTmp=$TOPy[i]idxLowestTopTmp=$TOPx[i]endifRem Afficher la courbe du tableau $TOPyRem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀CourbeTopArray=$TOPy[i] // comment afficher la courbe de valeurs du tableau?nextRem DRAWTEXT : Le plus HAUT/BAS des 15 derniers indicesRem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀DRAWVLINE(idxHighestTopTmp)DRAWTEXT("#HighestTopTmp#", idxHighestTopTmp, high[barIndex- idxHighestTopTmp],dialog,bold,20)Rem ..DRAWVLINE(idxLowestTopTmp)DRAWTEXT("#LowestTopTmp#", idxLowestTopTmp, high[barIndex- idxLowestTopTmp],dialog,bold,20)endifreturn CourbeTopArray as "CourbeTopArray"05/18/2020 at 12:36 PM #132133Bonjour,
je sollicite votre aide car je je ne réussi pas à résoudre le problème de mon codage. j’ai fais une copie d’écran qui résume la situation.j’essaie de comprendre et de manipuler les données d’un tableau.
Je vous remercie pour votre aide.
05/20/2020 at 9:36 AM #13236705/20/2020 at 3:48 PM #132435J’ai repris ton dernier code, le problème c’est que tu ne reset jamais le max et le min avant une boucle, sauf à la première itération où ça fonctionne car tu utilises ONCE. Pour mémoire, ONCE ne permet qu’une seule fois de donner une valeur à une variable. En retirant ONCE, les valeurs trouvées restent affichées.
05/20/2020 at 4:42 PM #132452 -
AuthorPosts
Find exclusive trading pro-tools on