Bonjour
C’est la 1ere fois que j’utilise Array, j’épprouve quelques difficultés.
j’ai un tableau des Top : $Topy
Je 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]
Il 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.
Bonjour
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
// 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 points
defparam drawonlastbaronly=true
cp=10
Rem LEs Tableaux
if 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 barindex
endif
if 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 barindex
endif
Rem Traitement
if(islastbarupdate and isset($topy[0]) and isset($boty[0])) then
once HighestTopTmp=$TOPy[lastset($TOPy)]
Rem TOP
for i = lastset($TOPy)-15 to lastset($TOPy) do // Définition de la Periode
Rem Le plus HAUT des 15 derniers indices
Rem --------------------------------------
if $TOPy[i]> HighestTopTmp then
HighestTopTmp=$TOPy[i]
idxHighestTopTmp=$TOPx[i]
endif
Rem Afficher la courbe du tableau $TOPy
Rem --------------------------------------
CourbeTopArray=$TOPy[i] // comment afficher la courbe de valeurs du tableau?
next
Rem DRAWTEXT : Le plus HAUT des 15 derniers indices
Rem --------------------------------------------------------------------
DRAWTEXT("#HighestTopTmp#", idxHighestTopTmp, high[barIndex- idxHighestTopTmp],dialog,bold,20) //coloured (255,255,255,alphaTopCount))
endif
return CourbeTopArray as "CourbeTopArray"
Par 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
// 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 points
defparam drawonlastbaronly=true
cp=10
Rem LEs Tableaux
if 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 barindex
endif
if 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 barindex
endif
Rem Traitement
if(islastbarupdate and isset($topy[0]) and isset($boty[0])) then
once HighestTopTmp=$TOPy[lastset($TOPy)]
once LowestTopTmp=$TOPy[lastset($TOPy)]
Rem TOP
for i = lastset($TOPy)-15 to lastset($TOPy) do // Définition de la Periode
Rem Le plus HAUT des 15 derniers indices
Rem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
if $TOPy[i]> HighestTopTmp then
HighestTopTmp=$TOPy[i]
idxHighestTopTmp=$TOPx[i]
endif
Rem Le plus BAS des 15 derniers indices // INJECTION
Rem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
if $TOPy[i]< LowestTopTmp then
LowestTopTmp=$TOPy[i]
idxLowestTopTmp=$TOPx[i]
endif
Rem Afficher la courbe du tableau $TOPy
Rem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CourbeTopArray=$TOPy[i] // comment afficher la courbe de valeurs du tableau?
next
Rem DRAWTEXT : Le plus HAUT/BAS des 15 derniers indices
Rem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
DRAWVLINE(idxHighestTopTmp)
DRAWTEXT("#HighestTopTmp#", idxHighestTopTmp, high[barIndex- idxHighestTopTmp],dialog,bold,20)
Rem ..
DRAWVLINE(idxLowestTopTmp)
DRAWTEXT("#LowestTopTmp#", idxLowestTopTmp, high[barIndex- idxLowestTopTmp],dialog,bold,20)
endif
return CourbeTopArray as "CourbeTopArray"
Bonjour,
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.
Bonjour
S’il vous plait, une petite aide pour mon petit problème. merci
J’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.
Rhaaaa , trop merci :-). Je comprends enfin le problème grâce à tes explications. Je vais pouvoir avancer sur l’apprentissage du Array.
Merci de nouveau Nicolas.