afficher uniquement que les 2 derniers signaux sur le graphique

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #190124 quote
    Codeur
    Participant
    New

    Bonjour,

    Dans un code j’ai rajouté la fonction comme cité dans le titre

    En fait je voudrais ne garder sur le graphique que les 2 derniers signaux pour alléger

    la lecture et les anciens signaux n’ayant plus aucun intérêt

    J’ai donc ajouté en début de code l’instruction

    DEFPARAM DRAWONLASTBARONLY = TRUE

    mais tous les signaux restent affichés au lieu des 2 derniers seulement comme je voudrais

    Y – a t-il une instruction complémentaire à coder

     

    Merci pour votre réponse

    Cordialement

    #190125 quote
    JC_Bywan
    Moderator
    Master

    Bjr,

    Sans voir le code, on ne peut que faire des suppositions et risquer de répondre à côté, donc possible que ce que je dise ne corresponde pas à votre cas…

    Si vos signaux qui restent tous affichés sont générés via par exemple une valeur en ligne return, alors il faut savoir que ” defparam drawonlastbaronly = true ” est quelque chose qui s’applique aux instructions graphiques (drawline, drawtext, etc…) mais pas aux valeurs renvoyées par la ligne return. Pour n’en garder que 2, il faut à chaque bougie connaitre les 2 plus récents, et les marquer via un objet graphique (drawarrow par exemple), de là on a une situation qui permet de ne tracer tout le temps que ces 2 signaux sans conserver leur historique.

    #190126 quote
    Codeur
    Participant
    New

    Bonjour JC_Bywan,

    merci pour la réponse

    Je joins le code, je pensais que c’était plus simple

    c’est le code pour pour les signaux de breakouts haussiers

    et comme écris plus haut je ne voudrais que les 2 derniers signaux sur le graphique

    Merci pour le retour

    Cordialement

    //Defparam DRAWONLASTBARONLY = true
    
    
    TRADINGTIME = time >= 034500 and time < 220000
    
    
    // -------------------------------------------------------------  BREAKOUT HAUSSIER SUPERTREND [2.5,10]  -------------------------------------------------------------
    
    
    ST = supertrend [2.5,10]
    
    SignalSt = close > ST
    
    p = 20
    dev = 2.5                                                                              // Modifiable en 2.5
    BollSup =Average[p](close)+dev*std[p](close)
    //BollInf = Average[p](close)-dev*std[p](close)
    
    a1 = close > BollSup
    
    //  // ANALYSE 9 DERNIERS CHANDELIERS ET LE CHANDELIER EN COURS
    
    //                     -- Le calcul se fait sur les 9 précédents et le chandelier en cours
    
    
    
    hh=highest[9](high)
    
    //bullish breakout
    if hh<>hh[1] then
    hhbar=barindex
    ENDIF
    
    if close crosses over hh[1] then
    //DRAWCANDLE(open,high,low,close)COLOURED(124,252,0)
    if SignalSt and TRADINGTIME and BOhaussier then
    DRAWCANDLE(open,high,low,close)COLOURED(135,206,250)              // LIGHT SKY BLUE
    if a1 then
    
    drawtext("ALERT >>                                    ",barindex[9],hh[1],SansSerif,Bold,12) coloured(255,0,0)
    ENDIF
    //drawsegment(hhbar[1],hh[1],barindex,hh[1]) coloured(0,0,255)
    
    drawtext("                          ---------------------",barindex[9],hh[1],SansSerif,Bold,14) coloured(0,0,255)
    drawtext("BO      ",barindex[9],hh[1],SansSerif,Bold,12) coloured(0,0,255)
    var = hh[1]
    If PrixHaussier then
    DRAWTEXT("                                                                                                                                                     #var# ", barindex[8],hh[1] ,SansSerif,Bold,10) COLOURED(0,0,255)
    
    //DRAWARROWUP(barindex,low-0.009)coloured(25,25,112)
    
    ENDIF
    
    ENDIF
    ENDIF
    RETURN
    #190129 quote
    Nicolas
    Keymaster
    Master

    J’ai modifié le titre pour que ce soit plus explicite. Suite à une autre demande de ce type, j’avais répondu dans ce post: https://www.prorealcode.com/topic/dernier-signal/#post-156750

    “Le code ci-dessous enregistre dans des tableaux les occurrences de tes détections de chandeliers. Puis à partir de la bougie courante, on fait une recherche dans les occurrences du tableau et on les affiche en les comptant, puis si on en a affiché suffisamment, on sort de la boucle.”

    #190131 quote
    JC_Bywan
    Moderator
    Master

    Re,

    je t’ai décommenté le defparam drawonlastbaronly,

    je t’ai rajouté 2 blocs de lignes chacun entre des lignes  ////////////// pour capturer les 2 signaux les plus récents

    ils sont tracés non plus via un chandelier coloré, car drawcandle ne peut se dessiner que sur barre en cours et par conséquent ne cohabite pas avec un drawonlastbaronly où on aurait besoin de la redessiner dans le passé à chaque nouvelle barre, mais via une flèche DRAWARROWUP de la couleur voulue light sky blue

    Defparam DRAWONLASTBARONLY = true
    //PrixHaussier=1
    //BOhaussier=1
    TRADINGTIME = time >= 034500 and time < 220000
    
    
    // -------------------------------------------------------------  BREAKOUT HAUSSIER SUPERTREND [2.5,10]  -------------------------------------------------------------
    
    
    ST = supertrend [2.5,10]
    
    SignalSt = close > ST
    
    p = 20
    dev = 2.5                                                                              // Modifiable en 2.5
    BollSup =Average[p](close)+dev*std[p](close)
    //BollInf = Average[p](close)-dev*std[p](close)
    
    a1 = close > BollSup
    
    //  // ANALYSE 9 DERNIERS CHANDELIERS ET LE CHANDELIER EN COURS
    
    //                     -- Le calcul se fait sur les 9 précédents et le chandelier en cours
    
    
    
    hh=highest[9](high)
    
    //bullish breakout
    if hh<>hh[1] then
    hhbar=barindex
    ENDIF
    
    if close crosses over hh[1] then
    
    if SignalSt and TRADINGTIME and BOhaussier then
    
    //////////////////////////////////////////////////
    s2O=s1O
    s2H=s1H
    s2L=s1L
    s2range=s1range
    s2a1=s1a1
    bars2=bars1
    vars2=vars1
    
    s1O=open
    s1H=high
    s1L=low
    s1range=s1H-s1L
    s1a1=a1
    bars1=barindex
    vars1 = hh[1]
    //////////////////////////////////////////////////
    
    ENDIF
    ENDIF
    
    //////////////////////////////////////////////////
    if bars2>=9 then
    DRAWarrowUP(bars1,s1L-s1range)COLOURED(135,206,250)//DRAWCANDLE(s1O,s1H,s1L,s1C)COLOURED(135,206,250)              // LIGHT SKY BLUE
    if s1a1 then
    drawtext("ALERT >>                                    ",bars1-9,hh[barindex-bars1+1],SansSerif,Bold,12) coloured(255,0,0)
    ENDIF
    drawtext("                          ---------------------",bars1-9,hh[barindex-bars1+1],SansSerif,Bold,14) coloured(0,0,255)
    drawtext("BO      ",bars1-9,hh[barindex-bars1+1],SansSerif,Bold,12) coloured(0,0,255)
    If PrixHaussier then
    DRAWTEXT("                                                                                         #vars1# ", bars1-8,vars1 ,SansSerif,Bold,10) COLOURED(0,0,255)
    ENDIF
    //
    DRAWarrowUP(bars2,s2L-s2range)COLOURED(135,206,250)//DRAWCANDLE(s2O,s2H,s2L,s2C)COLOURED(135,206,250)              // LIGHT SKY BLUE
    if s2a1 then
    drawtext("ALERT >>                                    ",bars2-9,hh[barindex-bars2+1],SansSerif,Bold,12) coloured(255,0,0)
    ENDIF
    drawtext("                          ---------------------",bars2-9,hh[barindex-bars2+1],SansSerif,Bold,14) coloured(0,0,255)
    drawtext("BO      ",bars2-9,hh[barindex-bars2+1],SansSerif,Bold,12) coloured(0,0,255)
    If PrixHaussier then
    DRAWTEXT("                                                                                         #vars2# ", bars2-8,vars2 ,SansSerif,Bold,10) COLOURED(0,0,255)
    ENDIF
    endif
    //////////////////////////////////////////////////
    
    RETURN
    #190132 quote
    Codeur
    Participant
    New

    Merci pour le retour,

    je vais étudier ces lignes

    et aussi pour le titre qui est effectivement plus clair en cas de recherche.

    Bonne journée

    Cordialement

    #190144 quote
    supertiti
    Participant
    Master

    bonjour à tous,

    ce sujet m’intéresse car alléger les signaux sur le graphe est une bonne chose.

    En utilisant “drawpoint ” ou un autre signal pourrait-on faire ressortir les deux derniers signaux sur un croisement de moyennes mobiles ?

    c1 = customclose crosses over average [20]

    c2 = customclose crosses under average [20]

    ainsi j’espère mieux comprendre les explications

    bonne journée

    #190156 quote
    JC_Bywan
    Moderator
    Master

    Bjr,

    adapté aux 2 derniers signaux de croisement de mm20, avec conservation du barindex, du niveau, et de la couleur pour distinguer lequel était c1 et lequel était c2

    Defparam DRAWONLASTBARONLY = true
    
    c1 = customclose crosses over average[20]
    c2 = customclose crosses under average[20]
    
    if c1 or c2 then
    bars2=bars1
    closes2=closes1
    rs2=rs1
    gs2=gs1
    //
    bars1=barindex
    closes1=close
    endif
    
    if c1 then
    rs1=0
    gs1=255
    endif
    
    if c2 then
    rs1=255
    gs1=0
    endif
    
    DRAWPOINT(bars1, closes1, 3) coloured(rs1,gs1,0)
    DRAWPOINT(bars2, closes2, 3) coloured(rs2,gs2,0)
    
    return
    #190158 quote
    supertiti
    Participant
    Master

    ¡   Merci beaucoup JC je regarde cela illico !

    bonne après midi

    #190159 quote
    supertiti
    Participant
    Master

     

    Re-

    Le code marche nickel, j’aimerai changer les couleurs des points j’ai trouvé pour le jaune mais pas pour le bleu ciel (c2), le RGB demande 3 chiffres, ici on parle de quoi comme code ?

    merci pour ton aide

    if c1 then
    rs1=247//0
    gs1=255 // jaune
    endif

    if c2 then
    rs1= 255
    gs1= 0 // bleu ciel ?
    endif

    #190160 quote
    JC_Bywan
    Moderator
    Master

    Pour bleu ciel on peut prendre 135,206,250 par exemple, et rajouter les lgnes qui permettent de faire varier le B du RGB:

    defparam DRAWONLASTBARONLY = true
    
    c1 = customclose crosses over average[20]
    c2 = customclose crosses under average[20]
    
    if c1 or c2 then
    bars2=bars1
    closes2=closes1
    rs2=rs1
    gs2=gs1
    bs2=bs1
    //
    bars1=barindex
    closes1=close
    endif
    
    if c1 then
    rs1=247//0
    gs1=255
    bs1=0
    endif
    
    if c2 then
    rs1=135//255
    gs1=206//0
    bs1=250
    endif
    
    DRAWPOINT(bars1, closes1, 3) coloured(rs1,gs1,bs1)
    DRAWPOINT(bars2, closes2, 3) coloured(rs2,gs2,bs2)
    
    return
    #190161 quote
    supertiti
    Participant
    Master

    merci JC , ça marche

    Bon week end

    #190688 quote
    Codeur
    Participant
    New

    A L’attention de JC_Byvan

    Bonjour,

    merci encore pour le code que tu m’a transmis plus haut

    j’essaye d’appliquer la même chose pour le breakout baissier.

    Pourrais tu m’expliquer en quelques mot les lignes ci-dessous que tu à rajouter.

    Elles correspondent à quoi exactement

    Merci pour ton retour

     

    //////////////////////////////////////////////////
    s2O = s1O
    s2H = s1H
    s2L = s1L
    s2range = s1range
    s2a1 = s1a1
    bars2 = bars1
    vars2 = vars1
     
    s1O = open
    s1H = high
    s1L = low
    s1range = s1H - s1L
    s1a1 = a1
    bars1 = barindex
    vars1 = hh[1]
    //////////////////////////////////////////////////
    #190725 quote
    JC_Bywan
    Moderator
    Master

    Bjr,

    voir commentaires ajoutés ci-dessous:

    //////////////////////////////////////////////////
    s2O = s1O           // mise
    s2H = s1H           //  en
    s2L = s1L           //   mémoire
    s2range = s1range   //    du
    s2a1 = s1a1         //     signal 1
    bars2 = bars1       //      en
    vars2 = vars1       // signal 2, juste avant de remplacer le signal 1 ci-après
     
    s1O = open          // ouverture bougie signal 1
    s1H = high          // haut bougie signal 1
    s1L = low           // bas bougie signal 1
    s1range = s1H - s1L // range bougie signal 1
    s1a1 = a1           // condition a1 bougie signal 1
    bars1 = barindex    // barindex bougie signal 1
    vars1 = hh[1]       // plus haut hh=highest[9](high) précédent (car hh[1]) en bougie signal 1
    //////////////////////////////////////////////////
    #190726 quote
    Codeur
    Participant
    New

    Merci beaucoup pour ce retour

     

    Cordialement

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

afficher uniquement que les 2 derniers signaux sur le graphique


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Codeur @codeur Participant
Summary

This topic contains 14 replies,
has 4 voices, and was last updated by Codeur
3 years, 11 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 03/18/2022
Status: Active
Attachments: No files
Logo Logo
Loading...