Screener des phases de marchés avec les bandes de bollinger

Viewing 15 posts - 1 through 15 (of 23 total)
  • Author
    Posts
  • #193217 quote
    Ozons
    Participant
    Junior

    Bonjour,

    à partir du programme Multicolorband  (https://www.prorealcode.com/prorealtime-indicators/multicolour-bollinger-bands-market-phases/)

    j’essaye de créer le Proscreener moindre risque en vert foncé.  Le code ci dessous fonctionne mais il me délivre quelques faux signaux (exemple Sanofi, Klepierre..). Ayant tout essayé pour trouver la solution je viens vers vous pour une aide. Merci par avance.

    // PARAMETRES
    BAISSE=0
    CONSOLIDATIONMOINDRERISQUE=0
    MOINDRERISQUE=0
    HAUSSE=0
    OPPORTUNITE=0
    REBONDTECHNIQUE=0
    RETOURNEMENTHAUSSIER=0
    RISQUEFINDEHAUSSE=0
    
    // INDICATEUR
    MM20 = AVERAGE[20](CLOSE)
    MM50 = AVERAGE[50](CLOSE)
    MM100 = AVERAGE[100](CLOSE)
    MM200 = AVERAGE[200](CLOSE)
    
    IF CLOSE > MM50 AND CLOSE > MM200 AND MM50 > MM200 AND CLOSE > MM20 THEN
    MOINDRERISQUE=1
    ENDIF
    
    IF CLOSE > MM50 AND CLOSE > MM200 AND MM50 < MM200 THEN
    HAUSSE=1
    ENDIF
    
    IF CLOSE > MM200 AND CLOSE < MM50 OR CLOSE < MM20 AND MM50 > MM200 AND CLOSE > MM100 THEN
    CONSOLIDATIONMOINDRERISQUE=1
    ENDIF
    
    IF CLOSE > MM200 AND MM50>MM200 AND CLOSE < MM100 THEN
    RISQUEFINDEHAUSSE=1
    ENDIF
    
    IF CLOSE > MM50 AND CLOSE > MM100 AND CLOSE < MM200 THEN
    RETOURNEMENTHAUSSIER=1
    ENDIF
    
    IF CLOSE > MM50 AND CLOSE < MM100 AND CLOSE < MM200  THEN
    OPPORTUNITE=1
    ENDIF
    
    IF CLOSE > MM20 AND CLOSE < MM50 AND CLOSE < MM200  THEN
    REBONDTECHNIQUE=1
    ENDIF
    
    IF CLOSE < MM50 AND CLOSE < MM200 AND CLOSE < MM20 THEN
    BAISSE=1
    ENDIF
    
    NOK = (BAISSE=0 OR CONSOLIDATIONMOINDRERISQUE=0 OR HAUSSE=0 OR OPPORTUNITE=0 OR REBONDTECHNIQUE=0 OR RETOURNEMENTHAUSSIER=0 OR RISQUEFINDEHAUSSE=0)
    OK  = (MOINDRERISQUE)
    
    //
    OKVOL = AVERAGE[20](CLOSE*VOLUME)>=1000000
    MONTANT = (CLOSE*VOLUME)>=500000
    
    // ECARTER LES TITRES AVEC DES TROUS DE COTATION JUSTE AVANT
    PASTROUSCOTATION = (HIGH[1] - LOW[1] > 0) AND (HIGH[2] - LOW[2] > 0) AND (HIGH[3] - LOW[3] > 0) AND (HIGH[4] - LOW[4] > 0)
    
    SIGNAL = (NOK AND OK) AND (OKVOL AND MONTANT AND PASTROUSCOTATION)
    
    SCREENER[SIGNAL]((CLOSE*VOLUME) AS "MONTANT")
    
    #193245 quote
    Nicolas
    Keymaster
    Master

    Selon moi c’est plus simple de tester la couleur de l’indicateur d’origine (à compléter avec tes autres filtres): donc ici vert foncé avec r=0  g=150 et b=0

     
    MM20=average[20](close)
    MM50=average[50](close)
    MM100=average[100](close)
    MM200=average[200](close)
     
    //rouge (baissier prix sous moyenne mobile 200
    c1= (close<MM200)
    if c1 then
    
    r=250
    g=0
    b=0
    ENDIF
    //orange( rebond technique)
    c2= c1 and(MM20<close)
    if c2 then
    
    r=255
    g=160
    b=0
    ENDIF
    //jaune (phase1 nouveau cycle)
    c3= c1 and(MM50<close)and(mm50<mm200)and(close<mm200)
    if c3 then
    
    r=800
    g=250
    b=0
    ENDIF
    //vert fluo ( phase 2 nouveau cycle)
    c4= (MM200<close)and(MM50<close)and(MM50<MM200)
    if c4 then
    
    r=0
    g=300
    b=0
    ENDIF
    //vert foncé ( au dessus de tte moyenne mobile, cycle mur)
    C5= (MM200<MM50)and(MM50<close)and(MM20<close)
    if c5 then
    
    r=0
    g=150
    b=0
    ENDIF
    //bleu (retournement de tendance)
    c6= (MM100<MM200) and(MM50<MM200)and (close<MM200)and(MM100<close)and(MM50<MM100)
    if c6 then
    
    r=0
    g=0
    b=300
    ENDIF
    //bleu (retournement de tendance 2 )
    c6bis= (MM100<MM200) and(MM50<MM200)and (close<MM200)and(MM50<close)and(MM100<MM50)
    if c6bis then
    
    r=0
    g=0
    b=300
    ENDIF
    //gris (phase 5 affaiblissement ou retournement à la baisse, neutre)
    c7= (MM200<close) and(close<MM100)and (MM200<MM100)and(MM200<MM50)
    if c7 then
    
    r=150
    g=150
    b=150
    ENDIF
    //bleu bouteille (consolidation)
    c8=(MM200<MM50)and(MM200<close)and(MM100<close)and((close<MM50)or(close<MM20))
    if c8 then
    
    r=0
    g=250
    b=200
    ENDIF
    screener[r=0 and g=150 and b=0]
    
    #193246 quote
    Ozons
    Participant
    Junior

    Bonjour Nicolas,

    merci pour ton aide. Cela ne fonctionne toujours pas. Par contre en isolant des parties du code, je me suis aperçu que Proscreeener ne reconnaît plus certains critères comme une simple clôture au dessus la moyenne mobile à 20 périodes sur certaines valeurs. Même remarque sur la version 11 ou 12, j’ai donc remonté l’incident. Encore merci et bonne fin de journée

    #193259 quote
    Nicolas
    Keymaster
    Master

    De mon côté c’est bien fonctionnel, les instruments retournés sont tous bien en vert foncé selon l’indicateur que tu as mentionné ? Aurais tu un exemple à me montrer pour comprendre où se situe le problème ?

    #193277 quote
    Ozons
    Participant
    Junior

    Nicolas,

    par exemple à la date du 16 mai 2022 (ce soir) sur Euronext actions en journalier,  le Proscreener ressort quelques titres en fichiers joints avec Proximus qui est en tendance baissière donc rouge et Sanofi en consolidation donc bleu bouteille (je t’ai mis un rectangle sur les prix pour identifier la zone) J’ai également quelques valeurs en gris .Pour qu’une action soit classée moindre risque elle doit à minima avoir comme critère un cours de clôture supérieur à la moyenne mobile simple à 20 périodes. (courbe en pointillé) En bas des photocopies d’écran l’indicateur des phases de marchés sous forme d’histogrammes. Merci Nicolas

    PROXIMUS.png PROXIMUS.png SANOFI.png SANOFI.png
    #193305 quote
    Nicolas
    Keymaster
    Master

    150 unités affichées sur le graphique, ça n’est pas suffisant pour calculer une moyenne mobile de 200 périodes, les valeurs des calculs de ton indicateur devraient donc changer si tu étends l’affichage à disons au moins 300 unités.

    #193346 quote
    Ozons
    Participant
    Junior

    et non :). Finalement j’ai fini par trouver et c’est un peu plus vicieux. Tout d’abord grâce à l’assistance qui m’a indiqué la nécessité de cocher l’ajustement des dividendes, et ensuite je me suis amusé à séparer chacune des conditions. Le programme d’origine est dysfonctionnel car les couleurs se chevauchent car il manque des conditions pour que cela fonctionne.

    Merci pour ton aide Nicolas, une fois le code modifié je le posterais à nouveau dans le forum.

    #193355 quote
    Nicolas
    Keymaster
    Master

    Le programme d’origine est dysfonctionnel car les couleurs se chevauchent

    oui c’est pour cette raison que je teste dans mon code la couleur verte foncé uniquement et pas chacune des conditions à la suite.

    Bravo pour avoir trouvé 🙂

    #193413 quote
    Ozons
    Participant
    Junior

    Bonjour Nicolas,

    voici  le correctif. J’ignore sur le site où je peux l’intégrer pour que la communauté puisse l’utiliser. En attendant ..

     

    // PARAMETRE
    BAISSE=0
    CONSOLIDATIONMOINDRERISQUE=0
    HAUSSE=0
    MOINDRERISQUE=0
    OPPORTUNITE=0
    RETOURNEMENTHAUSSIER=0
    REBONDTECHNIQUE=0
    RISQUEFINDEHAUSSE=0
    
    // INDICATEURS
    MM20 = AVERAGE[20](CLOSE)
    MM50 = AVERAGE[50](CLOSE)
    MM100 = AVERAGE[100](CLOSE)
    MM200 = AVERAGE[200](CLOSE)
    
    // PHASES CLASSEES D'UN MARCHE EN BAISSIE A UN MARCHE EN HAUSSE
    
    // ROUGE TENDANCE BAISSIERE
    IF CLOSE<MM20 AND CLOSE<MM50 AND CLOSE<MM200 THEN
    BAISSE=1
    ENDIF
    
    // ORANGE REBOND TECHNIQUE
    IF CLOSE > MM20 AND CLOSE < MM50 AND CLOSE < MM200  THEN
    REBONDTECHNIQUE=1
    ENDIF
    
    // JAUNE OPPORTUNITE
    IF CLOSE > MM50 AND CLOSE < MM100 AND CLOSE < MM200  THEN
    OPPORTUNITE=1
    ENDIF
    
    // BLEU RETOURNEMENT HAUSSIER
    IF CLOSE > MM50 AND CLOSE > MM100 AND CLOSE < MM200 THEN
    RETOURNEMENTHAUSSIER=1
    ENDIF
    
    // VERT CLAIR HAUSSE
    IF CLOSE > MM50 AND CLOSE > MM200 AND MM50 < MM200 THEN
    HAUSSE=1
    ENDIF
    
    // VERT FONCE MOINDRE RISQUE
    IF CLOSE > MM20 AND CLOSE > MM50 AND CLOSE>MM100 AND CLOSE > MM200 AND MM50 > MM200 THEN
    MOINDRERISQUE=1
    ENDIF
    
    // VERT BOUTEILLE CONSOLIDATION MOINDRE RISQUE
    IF CLOSE > MM200 AND (CLOSE < MM50 OR CLOSE < MM20) AND MM50 > MM200 AND CLOSE > MM100 THEN
    CONSOLIDATIONMOINDRERISQUE=1
    ENDIF
    
    // GRIS RISQUE FIN DE HAUSSE
    IF CLOSE > MM200 AND MM50>MM200 AND CLOSE < MM100 THEN
    RISQUEFINDEHAUSSE=1
    ENDIF
    
    RETURN MOINDRERISQUE COLOURED (20, 148, 20) STYLE(HISTOGRAM,1) AS "VERT FONCE - MOINDRE RISQUE", HAUSSE COLOURED (0, 255, 0) STYLE(HISTOGRAM,1) AS "VERT CLAIR - HAUSSE", CONSOLIDATIONMOINDRERISQUE COLOURED (0, 250, 200) STYLE(HISTOGRAM,1) AS "CYAN - CONSOLIDATION MOINDRE RISQUE", RISQUEFINDEHAUSSE COLOURED (150, 150, 150) STYLE(HISTOGRAM,1) AS "GRIS - RISQUE FIN DE HAUSSE", RETOURNEMENTHAUSSIER COLOURED (1, 49, 180) STYLE(HISTOGRAM,1) AS "BLEU - RETOURNEMENT HAUSSIER", OPPORTUNITE COLOURED (255, 255, 0) STYLE(HISTOGRAM,1) AS "JAUNE - OPPORTUNITE",REBONDTECHNIQUE COLOURED (239,155,15) STYLE(HISTOGRAM,1) AS "ORANGE - REBOND TECHNIQUE",BAISSE COLOURED (237, 0, 0) STYLE(HISTOGRAM,1) AS "ROUGE - BAISSE"
    Nicolas thanked this post
    #193425 quote
    Nicolas
    Keymaster
    Master

    Ici c’est très bien et lié au sujet et à son titre, merci pour le retour avec la version finale ! 🙂

    #193435 quote
    supertiti
    Participant
    Master

    Bonjour à tous

     

    Serait-il possible de mettre le code en .itf  , en le recopiant j’ai une erreur ligne 61 caractère 708

    merci ,bonne journée

    #193436 quote
    Nicolas
    Keymaster
    Master

    Il n’y a pas de ligne 61 pourtant ?! mauvais copier/coller je pense 🙄

    #193437 quote
    supertiti
    Participant
    Master

    ligne 59 caractere 708

     

    je l’ai copié/coller 3 fois ! tjrs le même pb ?

    #193439 quote
    supertiti
    Participant
    Master

    ligne 59 caractere 708

    je l’ai copié/collé 3 fois ! tjrs le même pb ?

    #193440 quote
    supertiti
    Participant
    Master
Viewing 15 posts - 1 through 15 (of 23 total)
  • You must be logged in to reply to this topic.

Screener des phases de marchés avec les bandes de bollinger


ProScreener : Scanners de Marché & Détection

New Reply
Author
author-avatar
Ozons @ozons Participant
Summary

This topic contains 22 replies,
has 3 voices, and was last updated by Ozons
3 years, 9 months ago.

Topic Details
Forum: ProScreener : Scanners de Marché & Détection
Language: French
Started: 05/15/2022
Status: Active
Attachments: 9 files
Logo Logo
Loading...