Annonce
Réduire
Aucune annonce.
Ads
Réduire
[Graphe AT PRo : programmation]
Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Bonjour à tous,

    Je suis probablement l'un des rares à utiliser GrapheATPro sur le marché Canadien (Toronto-TSX). Et c'est un outil très précieux! Toutefois, j'ai un léger problème de programmation.

    Voiçi, je tente de programmer un indice qui me permettrait de mettre en évidence les divergences (soit négatives, soit positives) entre les valeurs des cours et celles d'un indicateur comme par exemple le RSI (ou la MACD). Ce que je recherche est davantage la mise en évidence de ces divergences que la création des lignes de tendances sur les graphes. Donc, j'ai essayé via la programmation dans l'outil "statistiques" mais sans résultats concluants! J'ai utilisé les fonctions MIN(valeur, n), MAX(valeur,n), le calcul d'une pente, le ROC, etc. mais sans y arriver!

    Par exemple, si je pouvais obtenir des flèches sur le graphe des cours (flèche verte=Achat (divergence positive); flèche rouge=Vente (divergence négative)) lors d'une confirmation de divergence, ce serait parfait!! Tout en considérant bien sûr un "time frame" variable du genre P1=n jours.

    Je sais qu'il y en a ici qui sont fameux en ce qui a trait à la programmation; je vous demanderais de bien vouloir m'aider.

    Merci d'avance!!

    Jeff.

    Commentaire


    • Merci pour tes encouragements Roque.
      Les "pitchforks" n'ont vraiment pas été difficiles à programmer. Dans la mesure où le problème à résoudre s'appuie sur des règles claires et sans ambiguïté, on trouve toujours une solution pour le faire, même si le langage mis à notre disposition connaît encore quelques petites limitations. A ce sujet, même s'il ne répond pas à chaque fois, je bien certain que MLOG reste très attentif aux propositions d'évolution que d'aucuns ne manquent pas de lui faire.
      Bonne journée.

      Commentaire


      • Bonjour Jeff_X,

        Je te souhaite, habitant de la "Belle Province", bienvenue dans la communauté des utilisateurs de GrapheAT PRO.
        Comme je le disais récemment à Leo s, le problème des "divergences" entre cours et indicateurs/oscillateurs m'intéresse depuis un moment déjà. Cependant en recherchant les règles à appliquer pour construire un programme efficace, je me suis rendu compte qu'elles ne sont pas toujours très claires ni objectives et que le vocabulaire correspondant est pour le moins imprécis.
        Pour ne citer que quelques exemples et en me limitant aux expressions françaises, on parle de divergences "positives" et "négatives", mais aussi de divergences "directes" et "inverses", de divergences "régulières" et "cachées", ou encore de divergences "classiques" et "spéciales", voire "majeures" et "mineures"...Les définitions qui en sont données ne sont pas toujours très claires pour certaines d'entre elles.
        Pour ce qui concerne les règles qui régissent l'existence de divergences et en me limitant à quelques questions seulement, tout le mode s'accorde sur le fait qu'il doit exister deux crêtes, au moins, sommets ou creux clairement identifiables sur les cours, sans préciser le nombre minimum de périodes qui doivent être prises en compte entre ces deux crêtes pour que l'on puisse valider la figure. Idem pour l'indicateur.
        Notre oeil est d'autre part tout à fait apte à filtrer des crêtes mineures qui apparaissent souvent entre deux crêtes plus "fortes", comment définir les crêtes à ignorer et celles à prendre en compte?
        Il arrive aussi que les crêtes qui se produisent sur les cours et l'indicateur ne soient pas exactement simultanées. Bien qu'elles soient non rigoureusement synchrones, elles apparaissent pourtant à notre oeil comme supportant une divergence évidente. Combien de barres de décalage peut-on tolérer pour qu'une divergence puisse être reconnue comme telle?
        Sans nous poser la question réelle pourtant des limites qui les définissent, on exige habituellement que les cours soient dans une zone de surachat ou de survente pour qu'une divergence puisse être validée. Mais certains prétendent qu'une divergence peut très bien exister en dehors de ces zones. Qui croire?
        Voici une liste partielle des questions que je me pose. Ne serait-il pas possible que nous y réfléchissions et que nous mettions d'accord préalablement à toute écriture de programme?
        Si tu as des idées et des éléments de réponse, n'hésite pas à les poster.
        Ceci dit, il existe des produits qui détectent des divergences dans certains logiciels, américains souvent...Nous devrions pouvoir y parvenir nous aussi.

        Bonne fin de semaine.

        Commentaire


        • Bonjour SmallCap,

          Eh bien je me compte chanceux, la personne qui répond à ma question fait partie justement de ce groupe sélect de programmeurs!!

          Je suis d'accord avec toi en ce qui concerne les "types" de divergence"; mais ne coupons pas les cheveux en 4. Dans le cas qui m'intéresse, il s'agit simplement d'une divergence dite "négative" ou "positive" tel que l'ont décrit plusieurs auteurs (Weinstein, Murphy, etc.).

          Par ailleurs, je crois effectivement qu'il est absoluement nécessaire de considérer certains paramètres. À titre d'exemple concret, en voiçi quelques-uns, appuyés d'un graphe d'une cie Canadienne (Aur Ressources AUR.TO - Un petit producteur de cuivre) qui vous est possiblement inconnue.

          Sur ce graphe, nous observons clairement une divergence positive entre l'évolution des cours et celle de la MACD (cf. lignes noires continues).
          Évidemment, le prix des cours est exprimé en $ canadien. Le graphe est journalier.

          <center><a href='http://upload.pro-at.com/200408/aur%20ressources.gif' target='_blank' style='display:block; width:600px; border:2px dashed #888; padding:10px'><img src="http://upload.pro-at.com/200408/aur%20ressources.gif" alt='' width='600' height='352' /><em style='display:block; text-align: right'>Cliquez pour agrandir</em></a></center>


          <b>EXEMPLE DE MISE EN ÉVIDENCE D'UNE DIVERGENCE POSITIVE</b>

          <u>Paramètres considérés pour les cours</u>:

          <b>A-</b> Période d'au moins 50 jours (P1)(tel que dans le graphe; 48 jours environ);
          <b>B- </b>La différence de prix (en %) entre les 1er et second creux devrait être d'au moins -10% par exemple;

          <u>Paramètres considérés pour la MACD</u>:

          <b>C-</b> Retenir les valeurs de l'oscillateur aux 2 creux <u>correspondant à ceux des cours</u> (i.e. la ligne bleue MACD). Normalement, à ce moment, le croisement des 2 courbes MACD n'a pas encore eu lieu. Donc, dans l'équation, ne pas considérer ce moment du croisement.
          <b>D- </b>La différence (en %) entre les valeurs de la MACD (ligne bleue) qui correspondent aux creux devrait être d'au moins 10%.
          <b>E-</b> Il faudrait que la valeur de chaque creux soit inférieure à 0 dans le cas d'une divergence positive.

          Voilà!

          Ceci n'est qu'un exemple de paramétrage. Plusieurs autres possibilités existent. Il appartient à l'utilisateur de retenir ses paramètres préférés. D'autres paramètres pourraient s'ajouter à l'algorythme, mais je crois que nous aurions déjà un bon début avec ces 2 paramètres applicables sur les cours et 3 autres applicables sur la MACD.

          Si jamais toi, ou un autre, réussissez ce "tour de force", je fais parvenir au gagnant une médaille olympique du marathon ... de programmation!!

          Salutations!!

          Jeff.


          P.S: Brain Storming. En ce qui a trait au paramètre "A-", pour des raisons de fiabilité de la divergence, je crois qu'il est nécessaire de prendre un intervalle d'au moins 30 jrs. Aussi, il serait peut-être pertinent de prendre un intervalle décalé de 1 ou 2 jours (ex.: d'il y a 32 jours ("Cloture(32)") jusqu'à avant-hier ("Cloture(2)")).



          Commentaire


          • Un ajout à mon post précédent.

            Après réflexion, il serait préférable de tenir compte du <u>second croisement </u>des courbes MACD afin de "confirmer" la présence d'une divergence. Ceci dit, il demeure pertinent de considérer les 2 creux de MACD; dans ce cas, il nous serait au moins possible de retenir (sur "WatchList") les titres mis en évidence en attendant la confirmation de la divergence.

            Jeff.

            Commentaire


            • Bonjour,

              Sur quel site télécharges-tu les cours du marché canadien?

              Commentaire


              • Bonjour Orgacp,

                Je télécharge les cours Canadiens (TSX - Bourse de Toronto) via yahoo,
                avec GrapheAT-Pro (Onglet Actions US). Pour la bourse de Toronto, les symboles sont du type "NT.TO" (ex. Nortel Networks) ou "MOLA.TO" (ex. Bières Molson, actions de catégorie A). Tout comme pour les bourses de NY, Nasdaq, etc., les indices sectoriels canadiens sont aussi disponibles via yahoo.

                Très pratique ce Graphe AT-Pro!!

                Jeff.

                Commentaire


                • Bonsoir Jeff X,

                  Pour checker l'algorithme sans risquer de m'enfarger dans les fleurs du tapis, j'ai préféré commencer par sortir un prototype de programme, ou plutôt deux, qui tracent les divergences positives et négatives les plus récentes. C'est pas pire même si çà a été légèrement tannant. Ma job n'est pas terminée et il reste à concevoir des statistiques efficaces à partir de là. Statistiques qui pourraient inclure les contraintes que tu donnes dans tes derniers posts et dont je n'ai pas encore tenu compte dans mes deux programmes.

                  Principe retenu pour l'algorithme de recherche des divergences récentes :

                  <center><img src='http://upload.pro-at.com/200408/principes.gif' alt='' /></center>

                  1- Sur la MACD :
                  - chercher CI1, un plus bas récent, négatif, dans les P1 jours qui précèdent la fin de l'historique (P1 de 5 à 15 par exemple),
                  - chercher CI2, un plus bas < 0 et < CI1 dans les P2 jours qui précèdent CI1 (P2 aux alentours de 50).

                  2- Sur les cours :
                  - déterminer CC1 plus bas correspondant à la période à laquelle se produit CI1. On ajuste si nécessaire cette période si un plus bas <CC1 existe dans un intervalle de tolérance de + ou - P3 périodes autour de la date de CI1 (P3 de l'ordre de 2 ou 3),
                  - déterminer de même CC2 plus bas >CC1 en ajustant sa date comme celle de CC1.

                  Evidemment tout repose sur le choix "judicieux" des valeurs à donner aux paramètres P1, P2, P3.
                  Si tu as une autre idée, je suis preneur....

                  Structure des programmes à créer :

                  <center><img src='http://upload.pro-at.com/200408/structure_progs.gif' alt='' /></center>


                  Programme de tracé des divergences positives :

                  ----------------------------------------------
                  <font size="1">//RECHERCHER LA DIVERGENCE POSITIVE LA PLUS RECENTE
                  //ENTRE LES COURS ET LA MACD DANS LES LIMITES
                  //DEFINIES PAR P1, P2 ET P3
                  //

                  COURBE1=MACD
                  COURBE2=MMACD
                  D1=0
                  D2=0
                  MINI=1000


                  SI RANGHISTO=FINHISTO
                  ALORS
                  //
                  //CHERCHER LES 2 PLUS RECENTS PLUS BAS <0 SUR LA MACD
                  //

                  //Chercher le 1er plus bas dans les P1 jours
                  //
                  I=0
                  TANTQUE (I<=P1) FAIRE
                  SI MACD(I)<=MINI
                  ALORS
                  MINI=MACD(I)
                  D_MINI=FINHISTO-I
                  D1=I
                  FINSI
                  I=I+1
                  FINTANTQUE

                  SI D1=0
                  ALORS
                  Afficher "Pas de 1er mini sur la MACD"
                  Afficher "Modifier P1"
                  STOP
                  SINON
                  SI MACD(D1)>=0
                  ALORS
                  Afficher "Le 1er + bas doit être <0 !"
                  STOP
                  SINON
                  CI1=MINI
                  DATE_CI1=D_MINI

                  //Chercher le 2ème + bas dans les P2 jours qui précèdent le 1er
                  //
                  J=D1+1
                  CI2=CI1
                  TANTQUE (J<=P2) FAIRE
                  SI MACD(J)<=CI2
                  ALORS
                  CI2=MACD(J)
                  DATE_CI2=FINHISTO-J
                  D2=J
                  FINSI
                  J=J+1
                  FINTANTQUE

                  SI D2=0
                  ALORS
                  AFFICHER "Pas de 2ème + bas sur la MACD"
                  STOP
                  FINSI

                  //
                  //CHERCHER LES PLUS BAS CORRESPONDANTS SUR LES COURS
                  //AVEC P3 JOURS DE TOLERANCE DE PART ET D'AUTRE
                  //DES PLUS BAS SUR LE MACD
                  //

                  //Chercher le 1er
                  //
                  CC1=BAS(FINHISTO-DATE_CI1)
                  K=FINHISTO-DATE_CI1-P3
                  SI K<0
                  ALORS
                  K=0
                  FINSI
                  TANTQUE K<=FINHISTO-DATE_CI1+P3 FAIRE
                  SI BAS(K)<=CC1
                  ALORS
                  CC1=BAS(K)
                  DATE_CC1=FINHISTO-K
                  FINSI
                  K=K+1
                  FINTANTQUE

                  //Chercher le 2ème
                  //
                  CC2=BAS(FINHISTO-DATE_CI2)

                  K=FINHISTO-DATE_CI2-P3
                  TANTQUE K<FINHISTO-DATE_CI2+P3 FAIRE
                  SI BAS(K)<=CC2
                  ALORS
                  CC2=BAS(K)
                  DATE_CC2=FINHISTO-K
                  FINSI
                  K=K+1
                  FINTANTQUE

                  SI CC2<CC1
                  ALORS
                  Afficher " Pas de + bas > au 1er sur les cours"
                  Afficher " Modifier éventuellement P2"
                  STOP
                  SINON

                  //
                  //Tracer les segments
                  //
                  //Tracer sur la MACD
                  //
                  SI (CI1<>0) ET (CI2<>0)
                  ALORS
                  PENTE_I=(CI1-CI2)/(DATE_CI1-DATE_CI2)
                  POUR (FINHISTO-DATE_CI2+1) COURS
                  SEG_P_I(0)=PENTE_I*(RANGPOUR-1)+CI2
                  SI RANGPOUR>(DATE_CI1-DATE_CI2) ALORS BREAK
                  FINPOUR
                  FINSI

                  //Tracer sur les cours
                  //
                  SI CC1<>0 ET CC2<>0
                  ALORS
                  PENTE_C=(CC1-CC2)/(DATE_CC1-DATE_CC2)
                  POUR (FINHISTO-DATE_CC2+1) COURS
                  SEG_P_C(0)=PENTE_C*(RANGPOUR-1)+CC2
                  SI RANGPOUR>(DATE_CC1-DATE_CC2) ALORS BREAK
                  FINPOUR
                  FINSI

                  FINSI

                  FINSI

                  FINSI

                  FINSI</font id="size1">
                  ----------------------------------------------
                  Propriétés :

                  <center><img src='http://upload.pro-at.com/200408/prop_div_pos_11.gif' alt='' /></center>

                  Programme qui trace la droite de divergence sur les cours :
                  ----------------------------------------------
                  <font size="1">//TRACER LE SEGMENT DE LA DIVERGENCE POSITIVE
                  //SUR LES COURS
                  //

                  SEG_P_COURS=SEG_P_C</font id="size1">
                  ----------------------------------------------

                  Propriétés :

                  <center><img src='http://upload.pro-at.com/200408/prop_div_pos_2.gif' alt='' /></center>


                  EXEMPLE avec AGF :

                  <center><img src='http://upload.pro-at.com/200408/agf_div_pos.gif' alt='' /></center>

                  Programme de tracé des divergences négatives :

                  ----------------------------------------------
                  <font size="1">//RECHERCHER LA DIVERGENCE NEGATIVE LA PLUS RECENTE
                  //ENTRE LES COURS ET LA MACD DANS LES LIMITES
                  //DEFINIES PAR P1, P2 ET P3
                  //

                  COURBE1=MACD
                  COURBE2=MMACD
                  D1=0
                  D2=0
                  MAXI=0


                  SI RANGHISTO=FINHISTO ALORS

                  //
                  //CHERCHER LES 2 PLUS RECENTS PLUS HAUTS >0 SUR LA MACD
                  //

                  //Chercher le 1er plus haut dans les P1 jours
                  I=0
                  TANTQUE (I<=P1) FAIRE
                  SI MACD(I)>=MAXI
                  ALORS
                  MAXI=MACD(I)
                  D_MAXI=FINHISTO-I
                  D1=I
                  FINSI
                  I=I+1
                  FINTANTQUE

                  SI D1=0
                  ALORS
                  Afficher "Pas de 1er haut sur la MACD"
                  Afficher "Modifier P1"
                  STOP
                  SINON
                  SI MACD(D1)<=0
                  ALORS
                  Afficher "Le 1er + haut doit être >0 !"
                  STOP
                  SINON
                  SI1=MAXI
                  DATE_SI1=D_MAXI

                  //Chercher le 2ème + haut dans les P2 jours qui précèdent le 1er
                  //
                  J=D1+1
                  SI2=SI1
                  TANTQUE (J<=P2) FAIRE
                  SI MACD(J)>=SI2
                  ALORS
                  SI2=MACD(J)
                  DATE_SI2=FINHISTO-J
                  D2=J
                  FINSI
                  J=J+1
                  FINTANTQUE

                  SI D2=0
                  ALORS
                  AFFICHER "Pas de 2ème + haut sur la MACD"
                  STOP
                  FINSI


                  //
                  //CHERCHER LES PLUS HAUTS CORRESPONDANTS SUR LES COURS
                  //AVEC P3 JOURS DE TOLERANCE DE PART ET D'AUTRE
                  //DES PLUS BAS SUR LA MACD
                  //

                  //Chercher le 1er
                  //
                  SC1=HAUT(FINHISTO-DATE_SI1)
                  K=FINHISTO-DATE_SI1-P3
                  SI K<0
                  ALORS
                  K=0
                  FINSI
                  TANTQUE K<=FINHISTO-DATE_SI1+P3 FAIRE
                  SI HAUT(K)>=SC1
                  ALORS
                  SC1=HAUT(K)
                  DATE_SC1=FINHISTO-K
                  FINSI
                  K=K+1
                  FINTANTQUE

                  //Chercher le 2ème
                  //
                  SC2=HAUT(FINHISTO-DATE_SI2)

                  K=FINHISTO-DATE_SI2-P3
                  TANTQUE K<FINHISTO-DATE_SI2+P3 FAIRE
                  SI HAUT(K)>=SC2
                  ALORS
                  SC2=HAUT(K)
                  DATE_SC2=FINHISTO-K
                  FINSI
                  K=K+1
                  FINTANTQUE

                  SI SC2>SC1
                  ALORS
                  Afficher " Pas de + haut < au 1er sur les cours"
                  Afficher " Modifier éventuellement P2"
                  STOP
                  SINON

                  //
                  //Tracer les segments
                  //
                  //Tracer sur la MACD
                  //
                  SI (SI1<>0) ET (SI2<>0)
                  ALORS
                  PENTE_I=(SI1-SI2)/(DATE_SI1-DATE_SI2)
                  POUR (FINHISTO-DATE_SI2+1) COURS
                  SEG_N_I(0)=PENTE_I*(RANGPOUR-1)+SI2
                  SI RANGPOUR>(DATE_SI1-DATE_SI2) ALORS BREAK
                  FINPOUR
                  FINSI

                  //Tracer sur les cours
                  //
                  SI SC1<>0 ET SC2<>0
                  ALORS
                  PENTE_C=(SC1-SC2)/(DATE_SC1-DATE_SC2)
                  POUR (FINHISTO-DATE_SC2+1) COURS
                  SEG_N_C(0)=PENTE_C*(RANGPOUR-1)+SC2
                  SI RANGPOUR>(DATE_SC1-DATE_SC2) ALORS BREAK
                  FINPOUR
                  FINSI

                  FINSI

                  FINSI

                  FINSI

                  FINSI</font id="size1">
                  ----------------------------------------------

                  Propriétés :

                  <center><img src='http://upload.pro-at.com/200408/prop_div_neg_1.gif' alt='' /></center>

                  Programme qui trace la droite de divergence sur les cours :
                  ---------------------------------------------------
                  <font size="1">//TRACER LE SEGMENT DE LA DIVERGENCE NEGATIVE
                  //SUR LES COURS
                  //

                  SEG_N_COURS=SEG_N_C</font id="size1">
                  ----------------------------------------------------

                  Propriétés :

                  <center><img src='http://upload.pro-at.com/200408/prop_div_neg_2.gif' alt='' /></center>


                  Exemple avec MICHELIN :

                  <center><img src='http://upload.pro-at.com/200408/michelin_div_neg.gif' alt='' /></center>

                  Bonne lecture.
                  Merci pour vos avis.

                  Commentaire


                  • Les Divergences : EXCELLENT DÉBUT !!!

                    Merci et bravo SmallCap90 pour ton effort. En général, ça m'apparait OK!

                    Alors, j'ai fais un essai avec un titre dont on parle beaucoup de nos jours au Canada (Québec): Bombardier

                    Voiçi son graphe jusqu'à récemment:

                    <center><a href='http://upload.pro-at.com/200408/bombardier.gif' target='_blank' style='display:block; width:600px; border:2px dashed #888; padding:10px'><img src="http://upload.pro-at.com/200408/bombardier.gif" alt='' width='600' height='371' /><em style='display:block; text-align: right'>Cliquez pour agrandir</em></a></center>


                    J'aime bien ton idée de considérer un intervalle P3 de qques jours.
                    Il resterait à filtrer ces divergences à l'aide de quelques critères supplémentaires, comme par exemple, les écarts entre les creux obtenus. Dans le cas de Bombardier, le titre répond au critère puisque son cours a baissé d'au moins 10%, alors que la MACD s'appréciait d'au moins 10% !
                    Un critère supplémentaire pourrait être celui lié à la différence entre les 2 courbes MACD avant le croisement (i.e. juste avant les moments A et A" sur le graphe); plus cette différence est grande, plus puissante <u>pourrait être </u>la divergence.

                    Mais il est entendu qu'un tel indicateur de divergence, qui est pourtant reconnu techniquement comme étant très "performamt", doit toujours être utilisé en conjonction avec d'autres indicateurs, oscillateurs ou droites de tendance.

                    Maintenant, j'ai 2 questions pour toi SmallCap:

                    D'abord, faudrait-il cocher la case "affichage sur les cours" dans le cas de la Divergence Nég / Pos MACD ?

                    Enfin, lorsque tu dis qu'il te reste à concevoir des <u>statistiques</u> efficaces à partir de là ... j'imagine que tu veux dire que tu en es rendu à intégrer les variations (%) entre les creux? et en faire un petit programme utilisable dans le module Statistique du logiciel ?

                    Je vais continuer à réfléchir sur l'intégration d'autres critères visant à rendre plus fiable ces divergences. Par exemple, il y aurait qqchose à faire avec les volumes !!!

                    Merci encore et bon courage pour la suite!

                    Jeff.

                    Commentaire


                    • Une modification à mon dernier commentaire:

                      Oublions ma question sur "affichage sur les cours". Effectivement, il s'agit d'une divergence qui est traçée sur l'indicateur MACD.

                      Cependant, dans certains cas, j'ai observé certaines "bizarreries"; j'y reviendrai plus tard avec exemple à l'appui. Ce que je crois comprendre, c'est que ces "bizarreries" devraient disparaître après avoir filtrer en fonction d'écarts d'au moins n% entre les creux.


                      Jeff.

                      Commentaire


                      • Bonjour Jeff X,

                        Merci pour ton exemple commenté avec la valeur "Bombardier". A suivre...
                        Je viens de lire ta dernière remarque sur les tracés sur les cours. Tu as raison.
                        J'ai dû effectivement créer les petits programmes "DIV_POS_COURS et DIV_NEG_COURS uniquement pour pouvoir visualiser les segments des divergences sur les cours puisque les autres, DIV_POS_MACD et DIV_NEG_MACD, définissent l'indicateur de divergence et ne permettent pas de tracer quoi que ce soit sur les cours.
                        Résumons :
                        DIV_POS_MACD, (DIV_NEG_MACD) : indicateur de divergence positive, (négative), reprend le tracé de la MACD (courbes 1 et 2) et visualise, s'il existe, le plus récent segment de divergence positive (négative) sur la MACD compte tenu des valeurs choisies pour les paramètres P1, P2 et P3.
                        Ici on ne coche pas la case "Affichage sur les cours".
                        DIV_POS_COURS, (DIV_NEG_COURS) : visualise, s'il existe, le plus récent segment de divergence positive, (négative) sur les COURS. Ici on doit cocher la case "Affichage sur les cours".

                        Tu fais allusion à des bizarreries qui apparaissent sur les tracés. J'en ai constaté également. Je pense qu'elles proviennent surtout des choix faits pour fixer P1, P2 et P3. C'est le point faible de cette méthode de détermination. Il est vrai aussi que l'on peut toujours modifier les valeurs choisies et vérifier si ces bizarreries disparaissent ou non ...
                        Un exemple avec CFF pour P1=10 :

                        <center><img src='http://upload.pro-at.com/200408/bizzare_cff10.gif' alt='' /></center>

                        Puis pour P1=15 :

                        <center><img src='http://upload.pro-at.com/200408/bizzare_cff15.gif' alt='' /></center>

                        La bizarrerie a disparu.

                        Il faudra vraisemblablement définir des limites pour chaque paramètre.


                        Pour répondre aussi à la 2ème question que tu posais dans ton avant-dernier post, je peux dire qu'il était bien dans mon intention d'intégrer tous les autres critères de validation des divergences trouvées dans un programme qui reste à écrire dans le module Statistiques. Les programmes postés ne réalisant la recherche des divergences les plus récentes que de façon purement <u>géométrique</u>.
                        Préalablement à la conception de ce programme "Statistique", il faudra évidemment définir complètement et sans ambiguïté les règles à utiliser pour valider/invalider les divergences détectées.

                        A ce sujet il y a tout d'abord la question des <u>écarts</u> qui existent entre les deux <u>creux</u> ou les deux <u>sommets</u> des points définissant les divergences.
                        Tout d'abord, il est souvent admis qu'une divergence peut avoir lieu si l'on est dans un des 3 cas suivants (pour une divergence positive par exemple) :

                        <center><img src='http://upload.pro-at.com/200408/3%20cas.gif' alt='' /></center>

                        Souhaites-tu qu'on intègre ces trois cas ou préfères-tu éliminer les cas 2 et 3 plus rares il est vrai?
                        Il faut aussi quantifier la valeur admissible de cet écart. Tu proposais 10%.
                        Si on ne garde que le cas 1 ci-dessus, est-il nécessaire de vérifier si l'écart est bien présent sur les cours et sur l'indicateur ou peut-on se contenter de le vérifier sur l'un des deux seulement?

                        Souhaiterais-tu intégrer également un test de <u>durée minimale</u> de la divergence comme il y est souvent fait allusion dans la littérature pour "juger" de sa force?

                        Tu fais également allusion aux <u>écarts existants entre l'indicateur et son signal</u> (points A et A" sur ton graphe Bombardier). A quels moments devra-t-on les mesurer et comment juger de leur importance? Dire qu'ils devront être les plus grands possibles me semble difficile à programmer autrement qu'en logique floue...Peut-être faudrait-il les comparer aux écarts existants lorsqu'il n'y a pas de divergence?
                        Faudra-t-il les juger aux deux extrémités de la divergence? Le MACD Histogramme permettrait certainement de mieux les visualiser...

                        C'est un lieu commun de le dire, mais les valeurs choisies pour calculer l'indicateur et son signal interviennent aussi. Tu utilises (12,26,9) pourquoi pas (9,14,5)?

                        Enfin, à quel moment précis la divergence potentielle sera-t-elle validée si les critères précédents le sont?

                        Comme tu peux le constater, il reste encore bien des questions en suspens avant d'écrire un programme dans le module Statistiques.
                        Bon courage et merci par avance pour tes réponses.

                        Commentaire


                        • Petite contribution : les valeurs du MACD qui pourraient être utilisées :
                          - classique : 12,26,9
                          - Philippe Cahen : 9,19,6
                          - Philippe Erb : 4,20,4

                          Commentaire


                          • Bonjour à tous,

                            En réponse générale à tous ces bons commentaires, je me dois d'abord de revenir sur un point important qu'il ne faut pas oublier dans la recherche de mise en évidence des divergences.

                            Comme SmallCap le disait, il en existe plusieurs types, et plusieurs paramètres sont (ou peuvent être) impliqués. Alors il ne faut pas chercher à "trop systématiser" cette mise en évidence des divergences.

                            Lorsqu'on veut parcourir quelques centaines de titres, il nous serait déjà très utile de pouvoir mettre en évidence une série de 10 ou 20 titres avec divergence, pour ensuite, les analyser individuellement de façon visuelle et prendre position ou pas. Personnellement (comme plusieurs d'entre vous), j'utilise beaucoup les droites de tendance comme outil complémentaire à l'apparition de divergences.

                            Or, je crois qu'il serait préférable de régler surtout le cas des <u>écarts</u> entre cours / MACD.


                            <b>Les écarts entre creux (tops):</b>

                            On peut s'entendre pour ne retenir que le <u>Cas 1</u>.
                            Dans mon 1er post, j'ai donné comme exemple un écart de 10%. Dans la réalité, un tel écart à la fois entre les creux (tops) des cours et indicateur est plutôt exagéré. Ceci "filtrerait" trop les divergences, de sorte qu'on en perdrait plusieurs qui seraient pertinentes, malgré tout. Alors, je suggère <u>au moins 5%</u> d'écart (cours et MACD).


                            <b>Les questions entourant la force d'une divergence:</b>

                            À part ce critère d'écart, il y aurait possiblement le critère entourant l'écart entre les Courbe1 et Courbe2 de MACD. Alors, la mesure de cet écart serait logiquement au moment des creux (div. pos.). Cependant, afin de simplifier les choses, on pourrait juste considérer le 1er creux (i.e. le plus bas dans le cas d'une div. pos.). Toutefois, si cet exercice de programmation pose trop de difficultés, alors on oubliera ce critère!


                            <b>Paramètres de la MACD:</b>

                            Personnellement, je fonctionne avec le paramétrage "classique"; effectivement, je n'avais pas pensé à modifier ces paramètres, éventuellement. Ceci m'amène à une question: est-il vraiment souhaitable et réalisable d'aller jusque là en alourdissant d'autant la programmation?? Ou serait-il plus adéquat de créer simplement une variante du programme avec paramètres MACD 9,14,5 par exemple ?


                            <b>Moment de la validation d'une divergence potentielle:</b>

                            Important! Lors du croisement des 2 courbes MACD suivant le creux le plus récent (dans le cas d'une div. pos.). Sinon, ce serait lors du creux récent, avant le croisement; dans ce cas, il n'y aurait pas de validation! Ça augmente le risque!


                            <b>Test sur la durée d'une divergence:</b>

                            A-t-on besoin d'aller jusque là? Selon les paramètres P1 et P2 (dont P2 d'environ 50 jours) je crois qu'une divergence est bien établi.
                            De façon empirique, je me suis amusé à faire le décompte du nombre de titres (sur bourse TSX) qui montraient une divergence positive mise en évidence par le programme de SmallCap. J'en ai relevé une bonne douzaine; dans les jours suivants, 1 seul titre n'a pas levé!! Mes paramètres P1 et P2 étaient de 10 et 70 jours respectivement.

                            En conclusion, selon moi on y va par étape: le critère d'écarts entre creux (ou tops) m'apparaît incontournable. Les autres critères, plus tard!

                            Si d'autres intervenants veulent commenter (améliorer certains détails) n'hésitez pas!


                            Jeff.
                            P.S.: Pour les "bizarreries" des droites, effectivement, le changement des durées les élimine.

                            Commentaire


                            • Bonjour à tous

                              Juste un petit mot sur les points suivants concernant le prog des divergences :

                              * Paramétrage Macd : je suis paramétré en 9/19/6 et cela ne semble pas avoir posé de problème car je retrouve bien les exemples de Smallcap. J'ai recherché de façon aléatoire d'autres divergences et j'en ai trouvé qualques autres (DECAUX...).

                              * Signal du Macd : Selon moi la puissance de la divergence est principalement exprimé par l'angle d'attaque du Macd quand il croise sa ligne moyenne plus que par l'angle de la divergence.

                              * Réglage de la pente des divergences : Je suis de l'avis de JEFF pour que le programme de stat ne filtre pas trop car les divergence ne sont pas si nombreuse AMHA et demande une confirmation visuelle. Le plus sympa serait d'avoir d'avoir la possibilité de rentrer soi-même sa valeur 3%, 5%... (Aie ! Aie! Smallcap ne me tapes pas sur la tête<img src='http://www.pro-at.com/style/images/icones/icon_smile_blackeye.gif' border='0' alt='' title='' align='middle' />)

                              C'était juste un avis sur ton formidable programme Smallcap et merci à Jeff.

                              FOKI


                              Commentaire


                              • Bonjour FOKI,

                                Concernant le Signal du Macd, tu dis : ... la puissance de la divergence est principalement exprimé par l'angle d'attaque du Macd quand il croise sa ligne moyenne plus que par l'angle de la divergence.

                                Je suis en accord. D'ailleurs, il y a notamment John Murphy (l'Investisseur Visuel, ed. Valor) qui traite de l'angle d'attaque. Quoique ce n'est pas dans un contexte de divergence. Néanmoins, tu as raison, c'est un facteur important en terme de force de retournement.

                                Or, si l'on veut introduire ce critère dans le contexte de divergence, nous devons tenir compte de 2 moments: soit chaque creux (ou top). Ceci éliminerait possiblement plusieurs cas de divergence, ce que nous ne voulons pas. Alors, je me demandais si ce ne serait pas plus sage de ne considérer qu'un seul creux (top) pour répondre à ce critère. Mais de quel creux (top) s'agirait-il? Le moins récent ou le plus récent? À moins que SmallCap ne procède qu'au calcul de ces angles sans les intégrer comme condition (i.e. SI ... Alors ...). Nous aurions simplement le calcul des angles en colonne dans les résultats Statistique. Ça aiderait pour la prise de décision.

                                L'idéal serait que ces 2 critères (écarts- cours et MACD, angles d'attaque du MACD- 2 creux ou tops) soient retenus dans la formule Statistique. Mais cela demande un gros effort en terme de programmation! Quoiqu'avec SmallCap, tout est possible !!

                                Enfin, tu dis: ...Le plus sympa serait d'avoir d'avoir la possibilité de rentrer soi-même sa valeur 3%, 5%...

                                À mon avis, ce n'est pas nécessaire parce que tout ce qui est disons supérieur à 5% d'écart devient très intéressant. Donc je considèrerais plutôt =>5%

                                Merci pour tes commentaires.


                                Jeff.
                                PS: Dans mon exemple sur la cie Bombardier (BBDB.TO), la divergence positive a fait son travail (point de vue purement technique). En effet, après la confirmation de cette divergence positive, le titre a bondit de 15% en qques jours!! Présentement en sérieux repli.

                                Commentaire

                                Chargement...
                                X