Remplissage de tableau

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #171861 quote
    turame
    Participant
    Master

    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.

     

    if condition=1 then
    
    haut = high[10]
    
    if haut<>haut[1] then
    $haut[lastset($haut)+1] = haut[index]
    index=index+1
    endif
    
    endif
    #171872 quote
    Nicolas
    Keymaster
    Master

    Tu 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 :

    if condition=1 then
    
     haut = high[10]
    
     if haut<>haut[1] then
      $haut[lastset($haut)+1] = haut //enregistre la valeur de haut dans la nvelle colonne de $haut
     endif
    
    endif
    #171882 quote
    turame
    Participant
    Master

    Merci 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 ?

    DRAWTEXT(haut[0], barindex, high+5)
    DRAWTEXT(haut[1], barindex, high+10)
    DRAWTEXT(haut[2], barindex, high+15)
    DRAWTEXT(haut[3], barindex, high+20)
    #171883 quote
    turame
    Participant
    Master

    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.

    #171886 quote
    turame
    Participant
    Master

    Je 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 :

    for i=0 to smooth*2 do
    
    if i<>smooth then
    if high[i]<high[smooth] then
    Validationsommet=1
    else
    Validationsommet=0
    endif
    endif
    if Validationsommet=0 then
    break
    endif
    
    next
    #171921 quote
    Nicolas
    Keymaster
    Master

    Tes 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 🙂

    #171937 quote
    turame
    Participant
    Master

    “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 :

    //On inscrit les variables dans un tableau
    if condition=1 then 
    
    index=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.

    #171939 quote
    Nicolas
    Keymaster
    Master

    J’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.

    defparam drawonlastbaronly=true
    
    //condition ?
    condition = rsi[14] crosses over 50
    
    //remplit le tableau 
    if condition then
    
     haut = high[10]
    
     if haut<>haut[1] then
      $haut[index] = haut //enregistre la valeur de haut dans la nvelle colonne de $haut
      index=index+1
     endif
    endif
    
    //affiche les données du tableau
    if index>0 and islastbarupdate then 
     for i = 0 to index
      drawtext($haut[i],barindex,i,serif,standard,12)
     next
    endif 
    
    return 0, index
    data-array.png data-array.png
    #171957 quote
    turame
    Participant
    Master

    Ca marche, merci.

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.

Remplissage de tableau


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
turame @turame Participant
Summary

This topic contains 8 replies,
has 2 voices, and was last updated by turame
4 years, 8 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 06/16/2021
Status: Active
Attachments: 1 files
Logo Logo
Loading...