Histogramme 4 couleurs fonction prix / moyennes mobiles

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #161000 quote
    danielsimeon
    Participant
    New

    Bonsoir,

    Je cherche à créer un indicateur simple qui apparaît sous forme d’un histogramme en fonction des conditions remplies.

     

    J’ai plusieurs problèmes.

    1/ Le premier c’est que je peux avoir toutes les conditions qui sont bonnes et pourtant je n’ai pas la couleur correspondante.

    Par exemple, une valeur croissante et qui est au dessus de ces 3 moyennes n’apparait pas toujours en bleu (problème d’initialisation de ma variable ?)

    2/ Mon ordre soucis qui n’est secondaire pour le moment c’est que je n’arrive pas à rajouter l’indicateur sur mon graphique.

    J’ajoute un indicateur RSI (ou autre). J’ajoute ensuite mon indicateur et je cache le RSI pour avoir mon histogramme.

    Mais c’est de la bidouille.

     

    Merci d’avance !!

    Daniel

     

    MM50 = average [50]
    
    MM100 = average [100]
    
    MM200 = average [200]
    
    // conditions sur les moyennes mobiles et le prix
    c1 = close >= MM50
    c2 = MM50 >= MM100
    c3 = MM100 >= MM200
    
    // initialisation de l'indicateur 
    // valeur utile ?
    indicateur = 0
    
    // Les 4 résulats possibles. Toutes les conditions remplies, aucunes, 1 sur 3 ou 2 sur 3
    
    // 3 conditions de remplies sur 3
    Achat = c1 and c2 and c3
    
    // 2 conditions de remplies sur 3
    AchatAttente = (c1 and c2 and not c3) or (c1 and c3 and not c2) or (c2 and c3 and not c1)
    
    // 1 condition de remplie sur 3
    VenteAttente = (c1 and not c2 and not c3) or (not c1 and c2 and not c3) or (not c1 and not c2 and c3)
    
    // // Aucune condition de remplie sur 3
    Vente = not c1 and not c2 and not c3
    
    
    if Vente then
    indicateur = 1
    r=0
    g=0
    b=0
    
    
    elsif AchatAttente then
    indicateur = 1
    r=144
    g=238
    b=144
    
    elsif VenteAttente then
    indicateur = 1
    r=255
    g=0
    b=255
    
    elsif Achat then
    indicateur = 1
    r=0
    g=255
    b=255
    endif
    
    
    return indicateur coloured(r,g,b)style(histogram)
    
    #161003 quote
    danielsimeon
    Participant
    New

    Je viens de me rendre compte que mon indicateur s’affichait sur certains graphiques directement que pour d’autres les prix ont tellement augmenté qu’il faut dézoomer pour avoir accès à l’histogramme.

    Le bon côté des choses c’est que mon premier problème a disparu. La bidouille d’afficher l’histogramme sur le RSI faisait que l’histogramme était un indicateur du RSI et non des prix.

    Maintenant il me reste à régler mon problème pour ne pas avoir à dézoomer quand il y a une trop grande variation de prix (ou si le prix ne bouge pas depuis longtemps l’histogramme prend la moitié de l’écran…)

    #161031 quote
    JC_Bywan
    Moderator
    Master

    Bonjour, pour ton 2e problème, est-ce que tu parles de dézoomer parce que tu as mis l’indicateur dans la fenêtre du prix? Si oui, tu peux considérer le mettre en fenêtre séparée sous le prix, pas dans le rsi comme précédemment mais dans une fenêtre séparée créée spécifiquement pour ton indicateur, de sorte que tu n’auras pas besoin d’ajuster le zoom de la fenêtre du prix. Et aussi rajouter un 0 dans ta ligne “return” pour que ton histogramme remplisse cette fenêtre du pied à la tête des barres, sinon il te mettra que le haut de l’histogramme jusqu’à mi-fenêtre et laissera une moitié de fenêtre inutilement vide.

    Si besoin, le bouton pour ajouter un indicateur de cette façon, plutôt que dans une fenêtre prix ou indic déjà existante, est situé en bas à gauche de la fenêtre du graphe en v11, et on peut rajouter le mot “indicateurs” dans ce bouton via les options s’il n’y est pas (cf images attachées).

    v11-bouton-indicateurs.png v11-bouton-indicateurs.png v11reglages20200131.png v11reglages20200131.png
    #161066 quote
    danielsimeon
    Participant
    New

    Ah super merci.

    Effectivement j’aurais pu trouver la solution par moi même..

    Par contre le “return 0” je n’y aurais pas pensé.

    Dernière question. Si jamais je veux rajouter une nouvelle condition, avec ma façon de procéder je vais devoir ajouter énormément de lignes.

    Avec 4 conditions c’est encore possible.

    Mais avec 5 ou plus je vais y passer pas mal de temps pour rien j’imagine.

     

    Encore merci pour la première réponse !

    #161071 quote
    JC_Bywan
    Moderator
    Master

    Si tu veux généraliser à 5 ou plus, pour écrire ton code plus vite avec N conditions pour tout N>=5, en les appelant de c1 à cN (N connu), tu peux créer la somme de c1+c2+…+cN. Comme chaque condition vaut 0 ou 1, cette somme sera donc forcément entre 0 et N.

    De là tu peux vérifier si la somme est égale à 0 (aucune réalisée) ou 1 (une seule réalisée, peu importe laquelle), …etc… , N-2 (il  n’en manque que 2), N-1 (il en manque une), N (toutes réalisées), sans avoir besoin de définir individuellement tous les cas avec des “and”, “or” et “not”. Et en déduire si tes variables achat, vente et autres sont mises à 1 ou pas. Dans ce cas il faut les initialiser à 0 pour éviter que les 1 se propagent d’une barre à l’autre.

    achat=0
    achatattente=0
    venteattente=0
    vente=0
    
    Somme=c1+c2+c3+c4+c5+c6+c7+c8 // cas N=8
    
    If somme=8 then // toutes réalisées
     achat=1
    elsif somme=7 then // il en manque une
    ...
    elsif somme=6 then // il en manque 2
    ...
    etc...
    ...
    elsif somme=0 then // aucune
     vente=1
    endif
    #161089 quote
    danielsimeon
    Participant
    New

    Merci pour l’explication très claire !

     

    Bonne journée à vous

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

Histogramme 4 couleurs fonction prix / moyennes mobiles


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by danielsimeon
5 years, 1 month ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 02/10/2021
Status: Active
Attachments: 2 files
Logo Logo
Loading...