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

  • <font size="2">Bonsoir a tous,

    Est-ce que quelqu'un connait la formule de calcul de la volatilité à N jours dans le module statistique de Graphat SVP?</font id="size2">

    Commentaire


    • Bonsoir,
      Voici un programme possible pour le tracé de la droite de régression linéaire et de ses canaux associés. J'ai complèté le programme fourni par MLOG.

      Programme :

      ----------------------------
      Droite de régression linéaire se termine à P1 périodes
      // de la période actuelle, et commence à P1+P2 périodes de celle-ci.
      // Canaux de régression linéaire tracés à + ou moins P3 écarts types
      //de part et d'autre de la droite de régression linéaire.
      //

      SI RANGHISTO = FINHISTO - P1
      ALORS

      POUR P2 COURS
      X(0) = RANGPOUR
      Y(0) = CLOTURE
      FINPOUR

      SOMX = SOMME(X,P2)
      SOMY = SOMME(Y,P2)
      SOMXX = SOMME(X*X,P2)
      SOMXY = SOMME(X*Y,P2)

      A = (P2*SOMXY-SOMX*SOMY)/(P2*SOMXX-SOMX*SOMX)
      B = (SOMY-A*SOMX)/P2

      ETYPE = ECARTYPE(CLOTURE,P2)
      ETY=ETYPE

      POUR P2 COURS
      DROITE = A * X + B
      DROITESUP = DROITE + P3*ETY
      DROITEINF = DROITE - P3*ETY
      FINPOUR

      FINSI
      ----------------------------


      PROPRIETES :

      Rien de particulier.
      On déclare les courbes : DROITE, DROITESUP ET DROITEINF comme "Segments".
      Les paramètres prennent les valeurs suivantes dans le tracé ci-dessous :
      P1 = 15
      P2 = 60
      P3 = 1.5
      Cela veut donc dire que le tracé commence à P1+P2 = 15+60 = 75 jours avant le jour actuel et se termine P1 = 15jours avant.
      J'ai choisi (1.5*écart-type) sur P2 cours comme intervalle entre la droite de régression linéaire et les droites supérieure et inférieure du canal. On peut bien sûr choisir d'autres valeurs.

      Graphe :

      <center><img src='http://upload.pro-at.com/02/cac40_reg%20lin.gif' alt='' /></center>

      Bonne soirée à tous.

      Commentaire


      • Merci une nouvelle fois Smallcaps90 de nous faire partager tes indicateurs.

        Commentaire


        • Dans le même genre, on peut aussi s'intéresser aux canaux de RAFF.
          Ceux-ci sont également tracés parallèlement à la droite de régression linéaire mais à la différence des canaux de régression linéaire, ils sont situés à une distance égale au maximum des écarts mesurés entre les HAUTS du cours et la droite de régression linéaire d'une part et cette même droite et les BAS du cours d'autre part. Cette distance maxi est déterminée sur la durée du tracé des canaux.

          Programme :

          -----------------------
          // Droite de régression linéaire se termine à P1 périodes
          // de la période actuelle, et commence à P1+P2 périodes de celle-ci.
          // Canaux de RAFF
          //

          SI RANGHISTO = FINHISTO - P1
          ALORS

          POUR P2 COURS
          X(0) = RANGPOUR
          Y(0) = CLOTURE
          FINPOUR

          SOMX = SOMME(X,P2)
          SOMY = SOMME(Y,P2)
          SOMXX = SOMME(X*X,P2)
          SOMXY = SOMME(X*Y,P2)

          A = (P2*SOMXY-SOMX*SOMY)/(P2*SOMXX-SOMX*SOMX)
          B = (SOMY-A*SOMX)/P2

          POUR P2 COURS
          DROITE = A * X + B
          FINPOUR

          ECARTHAUT = MAX(HAUT-DROITE,P2)
          EH = ECARTHAUT
          ECARTBAS = MAX(DROITE-BAS,P2)
          EB = ECARTBAS
          ECART = MAXVAL(EH,EB)

          POUR P2 COURS
          RAFFSUP = DROITE + ECART
          RAFFINF = DROITE - ECART
          FINPOUR

          FINSI
          -------------------------

          Propriétés :

          Deux paramètres suffisent ici : P1 et P2 identiques aux P1 et P2 des canaux de régression linéaire.

          Graphe avec P1=15 et P2=60 :

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

          Graphe avec P1=20 et P2=60 :

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

          Il existe un système d'utilisation des canaux de régression linéaire ou de Raff, dans lequel on prend position à la cassure de l'une des lignes extrêmes du canal par les cours.
          A suivre...

          Commentaire


          • Clap clap clap Small

            Commentaire


            • suis dans la panade: après avoir téléchargé la nouvelle version, grapheAT pro me fait une misère à rpopos du coppock que j'avais paramétré au début comme indiqué sur le lien : <a href='/ref.php?uri=http%3A%2F%2Fwww.pro-at.com%2Ffrm%2Ftopic.asp%3FTOPIC_ID%3D6593%26whichpage%3D7' target="_blank">http://www.pro-at.com/frm/topic.asp?TOPIC_ID=6593&...</a>

              voici la copie du programme founi par Orion que je remercie:
              // ROC

              ROC11 = 100*((Cloture-Cloture(11))/Cloture(11))
              ROC14 = 100*((Cloture-Cloture(14))/Cloture(14))

              // Indicateur de Coppock : marché bull quand IC sup

              SROC = ROC11 + ROC14

              IndiceCoppock = PONDERE(SROC,10)


              Or maintenant, j'ai rien sur la courbe. L'indic est plat. Je suis allé dans le programme et il m'indique quand je clique sur "controler" : Error: l'argument doit être historisé (tableau)
              Puis le curseur se place là sur la derniere ligne: juste après SROCj'ai mis ce sigle @)
              IndiceCoppock = PONDERE(SROC@,10)

              Ben je ne comprend pas ce qu'il faut faire pour régler le problème: si une âme charitable pouvait m'aider, ce serait sympa.
              Merci

              Commentaire


              • <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citation :<hr height="1" noshade id="quote"><i>Citation de sphinx</i>
                <br />suis dans la panade: après avoir téléchargé la nouvelle version, grapheAT pro me fait une misère à rpopos du coppock que j'avais paramétré au début comme indiqué sur le lien : <a href='/ref.php?uri=http%3A%2F%2Fwww.pro-at.com%2Ffrm%2Ftopic.asp%3FTOPIC_ID%3D6593%26whichpage%3D7' target="_blank">http://www.pro-at.com/frm/topic.asp?TOPIC_ID=6593&...</a>

                voici la copie du programme founi par Orion que je remercie:
                // ROC

                ROC11 = 100*((Cloture-Cloture(11))/Cloture(11))
                ROC14 = 100*((Cloture-Cloture(14))/Cloture(14))

                // Indicateur de Coppock : marché bull quand IC sup

                SROC = ROC11 + ROC14

                IndiceCoppock = PONDERE(SROC,10)


                Or maintenant, j'ai rien sur la courbe. L'indic est plat. Je suis allé dans le programme et il m'indique quand je clique sur "controler" : Error: l'argument doit être historisé (tableau)
                Puis le curseur se place là sur la derniere ligne: juste après SROCj'ai mis ce sigle @)
                IndiceCoppock = PONDERE(SROC@,10)

                Ben je ne comprend pas ce qu'il faut faire pour régler le problème: si une âme charitable pouvait m'aider, ce serait sympa.
                Merci
                <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">
                essaies avec SROC(0)=ROC11+ROC14

                Commentaire


                • merci, ça a l'air de marcher

                  Commentaire


                  • Bonjour Sphinx,

                    Oui Xavier a raison, dorénavant GrapheAT Pro teste si une variable qui doit être historisée l'est bien au moment de la compilation d'une règle et nous signale par un message d'erreur si elle ne l'est pas quand on teste cette règle. Pratique non?
                    C'est souvent le cas du premier argument d'une fonction statistique de devoir être historisée. Effectivement, comment le logiciel pourrait-il calculer une moyenne par exemple, qu'elle soit pondérée comme la tienne ou pas, si on ne lui fournissait pas l'ensemble des valeurs dont il a besoin pour çà?

                    Il faut donc que tu écrives SROC(0) dans la règle qui calcule cette valeur pour que ta moyenne pondérée puisse ensuite être calculée.

                    Il y a une autre façon de procéder, qui peut brouiller un peu les cartes, pour déclarer historisée une variable qui ne l'est pas dans le programme : il suffit de la déclarer comme "Courbe" dans le tableau des Propriétés. C'est normal puisqu'une variable dont on place l'identificateur dans le tableau des "Courbe", sans pour autant tracer cette courbe, sera considérée bien comme historisée.

                    Résumons-nous.
                    1/ Tu écris :

                    ROC11 = 100*((Cloture-Cloture(11))/Cloture(11))
                    ROC14 = 100*((Cloture-Cloture(14))/Cloture(14))
                    <b>SROC(0)</b> = ROC11 + ROC14
                    IndiceCoppock = PONDERE(SROC,10)

                    Tu déclares juste "IndiceCoppock" comme courbe.
                    Et tout se passe bien.

                    2/ Tu écris :

                    ROC11 = 100*((Cloture-Cloture(11))/Cloture(11))
                    ROC14 = 100*((Cloture-Cloture(14))/Cloture(14))
                    <b>SROC</b> = ROC11 + ROC14
                    IndiceCoppock = PONDERE(SROC,10)

                    Et tu déclares non seulement "IndiceCoppock" comme courbe, <b>mais aussi "SROC"</b>. Tu peux ne tracer que la courbe "IndiceCoppock" (dans la colonne "Affichage" de la courbe SROC tu coches "Aucun").
                    Et tout se passe bien aussi.

                    Il est évidemment plus logique d'utiliser la technique 1/.

                    Bonne journée.

                    Commentaire


                    • merci smallcaps pour tes explications. Dès que j'ai le temps , je vais brasser les autres indicateurs que j'ai et j'essaye de corriger les problèmes. Je sais que si j'ai une difficulté, je trouverai une personne sympa ici (comme vous tous) pour m'aider. Merci à vous.

                      Commentaire


                      • il y avait les MM triangulaires qui coincaient et gràce à vous , j'ai réglé le problème . Merci

                        Commentaire


                        • <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citation :<hr height="1" noshade id="quote"><i>Citation de chctrader</i>
                          <br /><font size="2">Bonsoir a tous,

                          Est-ce que quelqu'un connait la formule de calcul de la volatilité à N jours dans le module statistique de Graphat SVP?</font id="size2">
                          <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

                          Re-salut

                          Euh, ya franchement personne qui sait?

                          Commentaire


                          • Comme promis voici la version "beta" du programme permettant de tracer des canaux de régression linéaires sur les cours.

                            ---------------------
                            <font size="1">//BreakOut sur les canaux de régression linéaire</strong>
                            //
                            SI RANGHISTO = 1
                            ALORS
                            DEPART=0
                            FLAG=0
                            CPT1=0
                            CPT2=0
                            FINSI

                            //--------------------------1ère partie
                            SI FLAG = 0
                            ALORS

                            SI (RANGHISTO=DEPART+P1)
                            ALORS

                            POUR P1 COURS
                            X1(0) = RANGPOUR
                            Y1(0) = CLOTURE
                            FINPOUR

                            SX1 = SOMME(X1,P1)
                            SY1 = SOMME(Y1,P1)
                            SXX1 = SOMME(X1*X1,P1)
                            SXY1 = SOMME(X1*Y1,P1)
                            A1 = (P1*SXY1-SX1*SY1)/(P1*SXX1-SX1*SX1)
                            B1 = (SY1-A1*SX1)/P1
                            ETYPE1 = ECARTYPE(CLOTURE,P1)
                            ETY1=ETYPE1

                            POUR P1 COURS
                            DROITE1 = A1 * X1 + B1
                            DROITESUP1 = DROITE1 + P2*ETY1
                            DROITEINF1 = DROITE1 - P2*ETY1
                            FINPOUR

                            FINSI

                            SI (RANGHISTO>P1+DEPART)
                            ALORS
                            XX1(0)=P1+1+CPT1
                            DROITE1 = A1 * XX1 + B1
                            DROITESUP1 = DROITE1 + P2*ETY1
                            DROITEINF1 = DROITE1 - P2*ETY1
                            COND1 = (Cloture<DROITESUP1)
                            COND2 = (Cloture>DROITEINF1)
                            CPT1=CPT1 + 1

                            SI (COND1=0 OU COND2=0) //alors dernier point des droites
                            ALORS
                            FLAG=1
                            DEPART = RANGHISTO-1
                            CPT1=0
                            FINSI
                            FINSI
                            FINSI

                            //--------------------------------2ème partie
                            SI FLAG=1
                            ALORS

                            SI (RANGHISTO=DEPART+P1)
                            ALORS

                            POUR P1 COURS
                            X2(0) = RANGPOUR
                            Y2(0) = CLOTURE
                            FINPOUR

                            SX2 = SOMME(X2,P1)
                            SY2 = SOMME(Y2,P1)
                            SXX2 = SOMME(X2*X2,P1)
                            SXY2 = SOMME(X2*Y2,P1)
                            A2 = (P1*SXY2-SX2*SY2)/(P1*SXX2-SX2*SX2)
                            B2 = (SY2-A2*SX2)/P1
                            ETYPE2 = ECARTYPE(CLOTURE,P1)
                            ETY2=ETYPE2

                            POUR P1 COURS
                            DROITE2 = A2 * X2 + B2
                            DROITESUP2 = DROITE2 + P2*ETY2
                            DROITEINF2 = DROITE2 - P2*ETY2
                            FINPOUR

                            FINSI

                            SI (RANGHISTO>DEPART+P1)
                            ALORS
                            XX2(0)=P1+1+CPT2
                            DROITE2 = A2 * XX2 + B2
                            DROITESUP2 = DROITE2 + P2*ETY2
                            DROITEINF2 = DROITE2 - P2*ETY2
                            COND3 = (Cloture<DROITESUP2)
                            COND4 = (Cloture>DROITEINF2)
                            CPT2=CPT2+1

                            SI (COND3=0 OU COND4=0) //alors dernier point des droites
                            ALORS
                            FLAG=0
                            DEPART = RANGHISTO-1
                            CPT2=0
                            FINSI
                            FINSI
                            FINSI</font id="size1">
                            -----------------------

                            Propriétés :
                            Sont déclarées les courbes : DROITE1, DROITE2, DROITESUP1, DROITEINF1, DROITESUP2 et DROITEINF2 avec le nouveau style "Segments".
                            Deux paramètres P1 = durée mini de tracé de chaque canal (20 dans l'exemple ci-dessous) et P2 nombre d'écart-types utilisés pour tracer les canaux (2 ici).
                            Cocher l'option "Affichage sur les cours".

                            Exemple :

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

                            On voit bien ci-dessus les changements de canaux aux différents break out : 1,2,3...

                            Un seul problème subsiste dans cette version : on ne change pas de canal lorsque le nombre de périodes fixé pour sa durée (paramètre P1) n'est pas atteint même si le cours sort du canal pendant cette durée. Le canal a donc au moins une longueur de P1 périodes.

                            Les canaux de Raff suivent...



                            Commentaire


                            • Voici le programme final pour les canaux de Raff.

                              ------------------------
                              <font size="1">//BreakOut sur les canaux de RAFF
                              //
                              SI RANGHISTO = 1
                              ALORS
                              DEPART=0
                              FLAG=0
                              CPT1=0
                              CPT2=0
                              FINSI

                              //--------------------------1ère partie
                              SI FLAG = 0
                              ALORS

                              SI (RANGHISTO=DEPART+P1)
                              ALORS

                              POUR P1 COURS
                              X1(0) = RANGPOUR
                              Y1(0) = CLOTURE
                              FINPOUR

                              SX1 = SOMME(X1,P1)
                              SY1 = SOMME(Y1,P1)
                              SXX1 = SOMME(X1*X1,P1)
                              SXY1 = SOMME(X1*Y1,P1)
                              A1 = (P1*SXY1-SX1*SY1)/(P1*SXX1-SX1*SX1)
                              B1 = (SY1-A1*SX1)/P1

                              POUR P1 COURS
                              DROITE1 = A1 * X1 + B1
                              FINPOUR

                              ECARTHAUT1 = MAX(HAUT-DROITE1,P1)
                              EH1 = ECARTHAUT1
                              ECARTBAS1 = MAX(DROITE1-BAS,P1)
                              EB1 = ECARTBAS1
                              ECART1 = MAXVAL(EH1,EB1)

                              POUR P1 COURS
                              RAFFSUP1 = DROITE1 + ECART1
                              RAFFINF1 = DROITE1 - ECART1
                              FINPOUR

                              FINSI

                              SI (RANGHISTO>P1+DEPART)
                              ALORS
                              XX1(0)=P1+1+CPT1
                              DROITE1 = A1 * XX1 + B1
                              RAFFSUP1 = DROITE1 + ECART1
                              RAFFINF1 = DROITE1 - ECART1
                              COND1 = (Cloture<RAFFSUP1)
                              COND2 = (Cloture>RAFFINF1)
                              CPT1=CPT1 + 1

                              SI (COND1=0 OU COND2=0) //alors dernier point des droites
                              ALORS
                              FLAG=1
                              DEPART = RANGHISTO-1
                              CPT1=0
                              FINSI
                              FINSI
                              FINSI

                              //--------------------------------2ème partie
                              SI FLAG=1
                              ALORS

                              SI (RANGHISTO=DEPART+P1)
                              ALORS

                              POUR P1 COURS
                              X2(0) = RANGPOUR
                              Y2(0) = CLOTURE
                              FINPOUR

                              SOMX2 = SOMME(X2,P1)
                              SOMY2 = SOMME(Y2,P1)
                              SOMXX2 = SOMME(X2*X2,P1)
                              SOMXY2 = SOMME(X2*Y2,P1)

                              A2 = (P1*SOMXY2-SOMX2*SOMY2)/(P1*SOMXX2-SOMX2*SOMX2)
                              B2 = (SOMY2-A2*SOMX2)/P1

                              POUR P1 COURS
                              DROITE2 = A2 * X2 + B2
                              FINPOUR

                              ECARTHAUT2 = MAX(HAUT-DROITE2,P1)
                              EH2 = ECARTHAUT2
                              ECARTBAS2 = MAX(DROITE2-BAS,P1)
                              EB2 = ECARTBAS2
                              ECART2 = MAXVAL(EH2,EB2)

                              POUR P1 COURS
                              RAFFSUP2 = DROITE2 + ECART2
                              RAFFINF2 = DROITE2 - ECART2
                              FINPOUR

                              FINSI

                              SI (RANGHISTO>DEPART+P1)
                              ALORS
                              XX2(0)=P1+1+CPT2
                              DROITE2 = A2 * XX2 + B2
                              RAFFSUP2 = DROITE2 + ECART2
                              RAFFINF2 = DROITE2 - ECART2
                              COND3 = (Cloture<RAFFSUP2)
                              COND4 = (Cloture>RAFFINF2)
                              CPT2=CPT2+1

                              SI (COND3=0 OU COND4=0) //alors dernier point des droites
                              ALORS
                              FLAG=0
                              DEPART = RANGHISTO-1
                              CPT2=0
                              FINSI
                              FINSI
                              FINSI</font id="size1">
                              -------------------

                              Propriétés :

                              6 courbes type "Segments" à déclarer : DROITE1, RAFFSUP1,RAFFINF1, DROITE2, RAFFSUP2, RAFFINF2.
                              1 paramètre P1 (=20 ici)
                              Ne pas oublier de cocher l'option "Affichage sur les cours".

                              Exemple :

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

                              Les points 1, 2, 3 et 4 sont des points de Break Out.

                              Bonne soirée.

                              Commentaire


                              • genial, bravo et merci

                                Commentaire

                                Chargement...
                                X