Remplissage de tableau
Forums › ProRealTime forum Français › Support ProBuilder › Remplissage de tableau
- This topic has 8 replies, 2 voices, and was last updated 3 years ago by turame.
-
-
06/16/2021 at 2:03 PM #171861
Bonjour à tous,
Je souhaite remplir un tableau avec une variable dynamique mais mon code ne rempli que les 2 premières colonne du tableau (les colonnes suivantes ont la même valeur que la 2ème colonne). Quelqu’un pourrait-il me corriger SVP ?
Merci d’avance.
Tableau12345678910if condition=1 thenhaut = high[10]if haut<>haut[1] then$haut[lastset($haut)+1] = haut[index]index=index+1endifendif06/16/2021 at 2:42 PM #171872Tu t’es un peu embrouillé on dirait 🙂
Sauf erreur de ma part tu veux enregistrer la valeur de la variable “haut” dans le tableau “$haut”, donc tu incrémentes la colonne du tableau en utilisant la dernière colonne connue auquel tu ajoutes 1 pour créer ta nouvelle colonne, c’est parfait.
Sauf qu’après cela tu utilises une variable “index” qui ne sert à rien, mais que tu utilises malgré tout pour modifier la valeur de “haut” que tu veux justement enregistrer! Selon moi le code devrait plutôt ressembler à ceci :
123456789if condition=1 thenhaut = high[10]if haut<>haut[1] then$haut[lastset($haut)+1] = haut //enregistre la valeur de haut dans la nvelle colonne de $hautendifendif06/16/2021 at 3:46 PM #171882Merci pour ta réponse Nicolas. En fait je me suis trompé dans mon premier code. In fine j’ai bien le même code que toi mais lorsque j’affiche les valeurs sur le graph, je ça ne correspond pas. Les deux premières valeurs sont bien différentes la 2ème valeur et suivantes sont identiques . Une idée ?
Affichage des valeurs sur le graph1234DRAWTEXT(haut[0], barindex, high+5)DRAWTEXT(haut[1], barindex, high+10)DRAWTEXT(haut[2], barindex, high+15)DRAWTEXT(haut[3], barindex, high+20)06/16/2021 at 4:02 PM #17188306/16/2021 at 4:11 PM #171886Je viens de faire un test intéressant qui peut aider. Si j’enlève la condition de départ, cela fonctionne, mais j’ai besoin de cette condition pour incrémenter le tableau. Voici la condition :
Condition de validation1234567891011121314for i=0 to smooth*2 doif i<>smooth thenif high[i]<high[smooth] thenValidationsommet=1elseValidationsommet=0endifendifif Validationsommet=0 thenbreakendifnext06/17/2021 at 12:06 PM #171921Tes DRAWTEXT n’affiche pas les valeurs de ton tableau, tu utilises les noms des variables “standard”, pas celles du tableau qui commencent avec un $
Par ailleurs, il y a plusieurs erreurs dans cette façon de faire, d’une part on ne peut pas DRAWTEXT une variable comme ceci, ça retournera 1 comme une valeur booléenne, puisque celle-ci est effectivement <> 0.
Bref, mais là n’est pas le sujet.
Pour faire simple:
Pour être plus précis, si mes conditions sont réunis, je cherche à enregistrer dans un tableau le plus haut de la 10ème bougie.
c’est donc bien le code que j’ai donné dans mon dernier post. Mais peut être cherches-tu le plus haut des 10 derniers plus haut ? et pas le High de 10 bougies en arrière ? Soyons concis et précis, on gagnera du temps 🙂
06/17/2021 at 2:21 PM #171937“c’est donc bien le code que j’ai donné dans mon dernier post. Mais peut être cherches-tu le plus haut des 10 derniers plus haut ? et pas le High de 10 bougies en arrière ? Soyons concis et précis, on gagnera du temps 🙂”
Je ne vois pas comment faire plus précis que mon poste ci-dessus : “Pour être plus précis, si mes conditions sont réunis, je cherche à enregistrer dans un tableau le plus haut de la 10ème bougie.”
Il s’agit simplement d’un exercice de lecture n’est-ce pas @Nicolas 😉 Cela dit Le temps doit te manquer et c’est tout à ton honneur d’essayer.
Au passage la fonction DRAWTEXT d’une variable fonctionne très bien. Pour l’avoir expérimenté sur plusieurs code, cela permet de débugger un certains nombre d’erreurs.
Pour ceux qui le souhaite j’ai trouver la solution. La voici :
12345678910111213//On inscrit les variables dans un tableauif condition=1 thenindex=index+1$haut[index] = high[10]endif//On utilise les variables comme suit pour le reste de notre étude$haut[index]$haut[index-1]//etc.A noter que pour moi le code du premier poste de Nicolas et la code ci-dessus devrait donner des résultats identiques, mais ce n’est pas le cas. Et après recherche, c’est à cause de la condition initiale intégrée dans une boucle for/next. J’en déduis que le remplissage d’un tableau dynamique n’est pas systématiquement compatible avec une boucle.
06/17/2021 at 2:34 PM #171939J’ai toujours pas tout compris 🙂 , donc voici un exemple pour enregistrer dans une nouvelle colonne le High[10] à chaque fois que le RSI croise le niveau 50.
Puis on affiche (à l’aide d’une boucle dans le tableau), toutes les valeurs de celui-ci sur le dernier chandelier.
123456789101112131415161718192021222324defparam drawonlastbaronly=true//condition ?condition = rsi[14] crosses over 50//remplit le tableauif condition thenhaut = high[10]if haut<>haut[1] then$haut[index] = haut //enregistre la valeur de haut dans la nvelle colonne de $hautindex=index+1endifendif//affiche les données du tableauif index>0 and islastbarupdate thenfor i = 0 to indexdrawtext($haut[i],barindex,i,serif,standard,12)nextendifreturn 0, index06/17/2021 at 3:58 PM #171957 -
AuthorPosts
Find exclusive trading pro-tools on