Identifier la dernière bougie positive/négative

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

    Bonjour,

    Je voudrais pouvoir identifier la dernière bougie positive/négative à la clôture de la bougie en cours même si elle se situe X bougies avant. Je suppose qu’il faut utiliser Barindex mais je n’y arrive pas.

    Quelqu’un peut m’aider?

    Merci d’avance,

    Phil4910

    #41515 quote
    Nicolas
    Keymaster
    Master

    L’identifier c’est possible, mais comment souhaites-tu représenter le résultat de notre recherche ? Ou tu souhaites juste savoir à combien de bougies en arrière  celle-ci a été trouvée ?

    #41537 quote
    Phil4910
    Participant
    Average

    Bonjour Nicolas,

    Je souhaite l’identifier pour l’intégrer dans un code parmi d’autres paramètres. Je n’ai donc pas besoin de savoir si elle se trouve une ou plusieurs bougies en arrière pour en tenir compte ou l’ignorer, sa position par rapport à la bougie actuelle importe peu.

    Merci de ton aide,

    Phil4910

    #41544 quote
    Pepsmile
    Participant
    Veteran

    Voici un premier jet à optimiser qui indique pour la barre en cours :

    • si la barre actuelle est positive : en haut de barre le nombre de périodes (incluant celle en cours) positives actuelles et en bas de barre le nombre de barres négatives précédentes
    • si la barre actuelle est négative: en bas de barre le nombre de périodes (incluant celle en cours)  négatives actuelles et en haut de barre le nombre de barres positives précédentes
    • NB: je n’ai pas inclu le cas de barre “neutre”, à modifier donc
    • code à visualiser sur le graphique des barres

     

    once Offset = 5 // distance du DRAWTEXT de l’extrême de la barre, peut intégrer un ATR moyen
    
    if close>close[1] then
    Q=1
    elsif close<close[1] then
    Q=-1
    else
    Q=0// attention il convient d'ajuster le code pour intégrer ce cas
    endif
    
    a=0
    For b=1 to 50 // peut aussi se gérer avec l'instruction WHILE
    Qb1=Q[b-1]
    if Q[b]<>Qb1 then
    a=a+1
    if a = 1 then
    n1=b
    elsif a=2 then
    n2=b-n1
    BREAK
    endif
    endif
    
    next
    
    DRAWTEXT("#n1#", barindex, high+Offset*pipsize,Dialog,standard,10) coloured (0,0,255)
    DRAWTEXT("#n2#", barindex, low-Offset*pipsize,Dialog,standard,10) coloured (255,0,0)
    
    return undefined
    Nicolas thanked this post
    #41548 quote
    Pepsmile
    Participant
    Veteran

    n1 = nombre de barres dont le close est équivalent (positif ou négatif) au close actuel, et n2 = nombre de barres dont le close est équivalent (positif ou négatif) au close précédent. Donc il conviendra éventuellement de “switcher” n1 et n2 avec un ordre conditionnel si tu veux attribuer la valeur positive à n1 et négative à n2

    #41558 quote
    Phil4910
    Participant
    Average

    Merci Pepsmile pour ton code.

    Malheureusement, ce n’est pas ce que je recherche pour mon usage; pour donner un exemple plus concret, une partie du code va donner un signal d’achat si la clôture de la bougie en cours est “bullish” et avec une clôture plus élevée que l’ouverture de la dernière bougie “bearish” même si cette bougie “bearish” se trouve X bougies dans le passé.

    Merci d’avance,

    Phil4910.

    #41559 quote
    Pepsmile
    Participant
    Veteran

    Ta précision n’apparaissait pas dans ta description précédente, néanmoins le 1er jet de code est applicable également dans ton exemple plus concret, il te suffit de préciser ta condition dans le haut de mon code

    #41561 quote
    Phil4910
    Participant
    Average

    Désolé pour le manque de précision, j’aurais dû être plus complet dans ma demande.

    Etant une bille en programation, je ne vois pas ce que tu veux dire en mentionnant la condition en haut du code…

    Si tu sais m’orienter, je t’en serais reconnaissant.

    Phil4910

    #41630 quote
    Phil4910
    Participant
    Average

    Nicolas,

    Peux-tu m’apporter ton aide dans ma demande?

    Merci,

    Phil4910

    #41645 quote
    Nicolas
    Keymaster
    Master

    Pour aller plus vite, je ne vais pas reprendre le code de pepsmile, merci pour son aide malgré tout.


    @Phil4910
    Tu peux essayer avec ça:

    X = 50 //quantité de bougies dans le passé à scanner pour trouver la dernière bougie bearish
    for i = 1 to X do 
     if close[i]<open[i] then 
      lastbear = close[i]
      break
     endif
    next
    
    // signaux bullish 
    if close>open and close>lastbear then 
     signal = 1
    else
     signal = 0
    endif 
    
    RETURN signal
    #41648 quote
    Phil4910
    Participant
    Average

    Merci Nicolas.

    Le code donne des parfois faux signaux (cfr image jointe).

    Si tu sais les éliminer, ce serait super!

    Phil4910

    Sans-titre.png Sans-titre.png
    #41664 quote
    Nicolas
    Keymaster
    Master

    Le problème vient en effet que l’on teste sur la clôture de la bougie bearish alors que c’est sur l’ouverture, le code devrait être ainsi :

    X = 50 //quantité de bougies dans le passé à scanner pour trouver la dernière bougie bearish
    for i = 1 to X do 
     if close[i]<open[i] then 
      lastbear = open[i]
      break
     endif
    next
    
    // signaux bullish 
    if close>open and close>lastbear then 
     signal = 1
    else
     signal = 0
    endif 
    
    RETURN signal
    #41665 quote
    Phil4910
    Participant
    Average

    C’est exactement ce que je recherchais!

    Merci Nicolas,

    Phil4910

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

Identifier la dernière bougie positive/négative


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Phil4910 @phil4910 Participant
Summary

This topic contains 12 replies,
has 3 voices, and was last updated by Phil4910
8 years, 7 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 07/24/2017
Status: Active
Attachments: 1 files
Logo Logo
Loading...