Condition dans un indicateur – un seul signal par tendance

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #56076 quote
    Laurent7533
    Participant
    Average

    Bonjour,

    J’ai une question de néophyte :

    Je souhaite créer un indicateur et l’installer sous le prix sous forme d’histogramme. Jusque là rien de compliquer. Je souhaite que si l’indicateur retourne un premier histogramme quand je suis dans la tendance (préalablement définie dans le code), il ne me retourne pas d’autre histogramme. Autrement dit, si mes conditions ont déjà créé un histogramme dans une tendance naissante, je ne souhaite pas d’autre histogramme si la tendance est toujours la même.

    Est-ce que quelqu’un peut m’aider svp ?

    Cordialement,

    Laurent

    #56077 quote
    Nicolas
    Keymaster
    Master

    La façon la plus simple de procéder est de tester l’état de la l’indicateur de tendance à la barre précédent le signal. Difficile de répondre précisément avec un exemple, mais voilà ce que je peux te proposer :

    Si la variable tendance marquant le début d’une tendance haussière retourne une valeur supérieure à 0 et qu’une tendance baissière est une valeur nulle ou inférieure à 0, alors on test si la barre courante est la barre qui a vu cette valeur passer la valeur de négative (ou nulle), à positive :

    if tendance>0 and tendance[1]<=0 then 
     signal = 1
    else
     signal = 0
    endif
    
    return signal

    Le signal de trading est donné par la variable “signal”, on la retourne à zéro si la condition n’est plus valable.

    Ici on aurait aussi pu tester un cross over de la ligne 0 dans une variable booléenne : (vrai ou faux)

    signal = tendance crosses over 0 
    
    return signal

    Ce sont des bases de programmation, je t’invite à visualiser la formation à la programmation pour débutant.

    #56078 quote
    Laurent7533
    Participant
    Average

    Merci Nicolas mais je n’ai pas dû être clair dans ma question, le plus simple est que je mette mon code en exemple :

    indicateur = 0
    
    MM50 = average[50](close)
    MM200 = average[200](close)
    
    c1L = MM50 > MM200 AND close > MM50
    c2L = high > high[1] AND low > low[1]
    
    c3L = c1L AND c2L
    
    IF c3L THEN
    indicateur = 1
    ENDIF
    
    RETURN indicateur

    Il fonctionne. Le soucis que je rencontre, c’est que j’ai trop d’histogrammes. Je souhaiterais ne garder que le premier histogramme pour chaque nouvelle tendance. Et je ne souhaite plus voir les autres.

    #56087 quote
    Nicolas
    Keymaster
    Master

    Tu as été très clair et ma réponse été appropriée.

    Voilà ton code modifié, remarque la modification entre la ligne 11 et 13, elle correspond à mon première exemple.

    indicateur = 0
    
    MM50 = average[50](close)
    MM200 = average[200](close)
    
    c1L = MM50 > MM200 AND close > MM50
    c2L = high > high[1] AND low > low[1]
    
    c3L = c1L AND c2L
    
    IF c3L and c3L[1]=0 THEN
    indicateur = 1
    ENDIF
    
    RETURN indicateur

    On test simplement l’état de la condition c3L sur la barre courante et si elle était vrai ou non sur la barre précédente, ici si elle était fausse alors on a un nouveau signal.

    #56090 quote
    Laurent7533
    Participant
    Average

    Merci Nicolas, mais la solution que tu proposes permet d’éviter qu’il y ait 2 histogrammes d’affilée. Je souhaite quelque chose de plus “exigeant”. En fait, à compter du moment où un seul histogramme a été retourné sur la tendance, je ne souhaite plus aucun histogramme après sur tout le long de la tendance. Autrement dit, pour une tendance sur n jours, je souhaite un seul histogramme (le premier pour lequel la condition est respectée) et plus aucun.

    #56092 quote
    Nicolas
    Keymaster
    Master

    Dans ce cas il faut revoir la condition c3L qui définit ta tendance, car c’est elle la fautive 🙂 Si tu sais m’indiquer ce qui définit une fin de tendance selon cette stratégie ? Car on a bien le début avec c3L mais pas la fin.

    #56098 quote
    Laurent7533
    Participant
    Average

    En fait, ma tendance haussière est définie par c1L : MM50 > MM200 AND close > MM50

    Je ne suis plus en tendance si l’une des 2 conditions n’est plus respectée. Ma tendance baissière est définie par MM50 < MM200 AND close < MM50

    #56104 quote
    Nicolas
    Keymaster
    Master

    Ok je vois cela demain, dans la négative, merci de me le rappeler.

    #56205 quote
    Laurent7533
    Participant
    Average

    Bonjour Nicolas. Petit rappel comme convenu.

    #56237 quote
    Nicolas
    Keymaster
    Master

    Très bien, donc on remet “indicateur” à 0 si c1L n’est plus vrai dans ce cas:

    MM50 = average[50](close)
    MM200 = average[200](close)
    
    c1L = MM50 > MM200 AND close > MM50
    c2L = high > high[1] AND low > low[1]
    
    c3L = c1L AND c2L
    
    IF c3L THEN
    indicateur = 1
    ENDIF
    
    if indicateur and not c1L then 
    indicateur=0
    endif
    
    RETURN indicateur
    signaux-de-trading-indicateur.png signaux-de-trading-indicateur.png
    #56329 quote
    Laurent7533
    Participant
    Average

    Bonjour Nicolas. Désolé mais ce n’est pas cela que je souhaite. Je n’arrive visiblement pas à être clair. Je reprends en reformulant. Admettons que je suis en tendance c1L et que j’ai une série d’histogrammes correspondant à une autre condition positive dans cette tendance 1 0 1 1 0 1 1 1. Je ne souhaite qu’avoir le premier histogramme de cette autre condition c’est à dire la série 1 0 0 0 0 0 0 0. Merci d’avance  pour ton aide

    #56339 quote
    Nicolas
    Keymaster
    Master

    ok j’ai donc préféré repartir de zéro:

    MM50 = average[50](close)
    MM200 = average[200](close)
    
    c1 = MM50 > MM200 AND close > MM50
    c2 = high > high[1] AND low > low[1]
    
    if c1 and not c1[1] then 
    startbar=barindex
    endif
    
    signal=0
    if c1 and c2 and signalbar<>startbar then 
    signalbar=startbar
    signal=1
    endif
    
    return signal
    ZeroCafeine thanked this post
    trading-signals-moving-average.png trading-signals-moving-average.png
    #56383 quote
    Laurent7533
    Participant
    Average

    Bravo Nicolas ! Ca fonctionne. Un grand merci pour le temps pris à m’aider. Vraiment un très bon site de référence !

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

Condition dans un indicateur – un seul signal par tendance


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

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

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 12/19/2017
Status: Active
Attachments: 2 files
Logo Logo
Loading...