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

  • [Graphe AT PRo : programmation]

    Bonjour,

    Comme Altistock voit ses utilisateurs proposer des programmations d'indicateurs et de TS, je propose que les utilisateurs de Graphe AT Pro fassent profiter de leurs compétences en programmation.

    Pour commencer, je vous délivre quelques indicateurs que j'ai programmé à la suite de la lecture du dernier livre d'Alexander Elder ("Come Into My Trading Room")

    // Force Index
    // P1 = longueur de la Moyenne Exponentielle
    FI_Court= EXPOSUIV(FI_Court,Volume*(Cloture-Cloture(1)),P1)


    // Impulse System selon Alexander Elder
    // p 157 de Come Into My Trading Room
    // Principe:
    // si EMA(13) et MACD histo sont en phase alors signal
    // la fin du signal indique de sortir de ses positions
    // Très utile pour entrer au bon moment en utilisant le Triple Screen
    // en n'allant pas contre l'Impulse.

    //EMA P1
    EMA = EXPOSUIV(EMA,cloture,P1)

    SI ((EMA>EMA(1)) ET (RMACDHISTO.RMACDHISTO>RMACDHISTO.RMACDHISTO(1))) ALORS
    IMPULSE = Bas * 0.99
    SINON
    SI ((EMA<EMA(1)) ET (RMACDHISTO.RMACDHISTO<RMACDHISTO.RMACDHISTO(1))) ALORS
    IMPULSE = Haut * 1.01
    SINON
    IMPULSE = (Haut+Bas)/2
    FINSI
    FINSI
    <center><img src='http://upload.pro-at.com/01/impulse.gif' alt='' /></center>

    Le résultat à l'écran:
    <center><img src='http://upload.pro-at.com/01/lvmh_impulse.gif' alt='' /></center>

    La suite un peu plus tard...

  • #2
    Le MACD histo ne me plaisait pas, alors je l'ai redéfini comme suit:

    Ca, c'est la version redéfinie de MLog que je conserve
    // MACD
    ema1 = ema1+(Cloture-ema1) * 2/(1+P1)
    ema2 = ema2+(Cloture-ema2) * 2/(1+P2)
    RMACD = ema1 - ema2

    // Moyenne exponentielle du MACD
    RMMACD = EXPOSUIV(RMMACD,RMACD,P3)
    <center><img src='http://upload.pro-at.com/01/rmacd.gif' alt='' /></center>


    Ca c'est ma version de l'histogramme dérivé du MACD redéfini
    // MACD Histogramme
    RMACDHISTO = (RMACD-RMMACD)*4 // x4 pour bien le voir
    MACDS = RMACD
    MACDL = RMMACD

    //SI l'histogramme croît, alors en vert
    Si RMACDHISTO>RMACDHISTO(1) Alors
    HISTO_POS = RMACDHISTO
    HISTO_NEG = 0
    Sinon //en rouge
    HISTO_NEG = RMACDHISTO
    HISTO_POS = 0
    Finsi
    <center><img src='http://upload.pro-at.com/01/rmacd%20histo.gif' alt='' /></center>

    Et pour finir le résultat à l'affichage (ex carrefour)
    <center><img src='http://upload.pro-at.com/01/graph_fi_rmacd.gif' alt='' /></center>

    La suite au prochain message!

    Commentaire


    • #3
      Le thermomètre:

      // Market Thermometer selon Alexander Elder
      // p162 de 'Come Into My Trading Room'

      // Histo de la température
      TEMPERATURE = MAXVAL(Haut-Haut(1), Bas(1)-Bas)
      SI TEMPERATURE < 0 ALORS TEMPERATURE = 0
      // P1 = longueur de l'EMA
      MTEMPERATURE = EXPOSUIV(MTEMPERATURE,TEMPERATURE,P1)

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

      Interprétation (4 signaux)
      - le meilleur moment pour de nouvelles positions est quand la T° < sa moyenne
      - Sortir des positions quand la T° > 3 x sa moyenne
      - si la T° reste sous sa moyenne pendant 5 à 7 séances de bourse, il faut s'attendre à un mouvement violent
      - déterminer l'objectif pour le lendemain (CT):
      - HA -> obj = moyenne T° + haut(veille)
      - VAD -> obj = bas(veille) - moyenne T°

      Un petit graphe:
      <center><img src='http://upload.pro-at.com/01/lvmh_thermo.gif' alt='' /></center>

      Dites-moi si tout cela vous intéresse, j'ai encore en magasin le SafeZone, les canaux, le calcul du coefficient des canaux (pas aidé par le language pour celui-là), et le Chandelier Exit.

      Bon trades,
      RickenBroc

      Commentaire


      • #4
        En lalalalala, le copieur

        Juste une question ca veut dire quoi EXPOSUIV??
        Et une autre haut(1)??

        Commentaire


        • #5
          Bah, je fait comme les autres, j'utilise ce que des gens plus "expérimentés" ont mis au point...

          Haut(1) c'est le plus haut de la veille

          EXPOSUIV c'est la formule pour calculer une moyenne mobile exponentielle
          donc FI_court c'est la MME à P1 jours (typiquement 2 jours) du volume par la différence du cours de cloture avec celui de la veille


          Commentaire


          • #6
            J'ai tenté de programmer la formule de KST de Martin Pring, mais le résultat est erroné.
            Voici ce que j'ai programmé pour le KST COURT TERME :
            // ROC

            ROC3 = CLOTURE/CLOTURE(3)
            ROC4 = CLOTURE/CLOTURE(4)
            ROC6 = CLOTURE/CLOTURE(6)
            ROC10 = CLOTURE/CLOTURE(10)
            MERROC3 = EXPOSUIV(MERROC3,ROC3,3)
            MERROC4 = EXPOSUIV(MERROC4,ROC3,4)
            MERROC6 = EXPOSUIV(MERROC6,ROC6,6)
            MERROC10 = EXPOSUIV(MERROC10,ROC10,8)
            M1=MERROC3*1
            M2=MERROC4*2
            M3=MERROC6*3
            M4=MERROC10*4

            // KST CT
            KSTCT=M1+M2+M3+M4
            MKSTCT=EXPOSUIV(MKSTCT,cloture,8)

            Sur Metastock la forume est la suivante :
            (Mov(ROC(C,3,%),3, E)*1) +
            (Mov(ROC(C,4,%),4, E)*2) +
            (Mov(ROC(C,6,%),6, E)*3) +
            (Mov(ROC(C,10,%),8, E)*4)

            Si quelqu'un veut bien me corriger, Je l'en remercie par avance
            francis

            Commentaire


            • #7
              Bonjour,

              D'après moi le calcul est correct, (il faut juste penserà vérifier que le ROC en % de Métastock donne bien CLOTURE/CLOTURE(periode) et non pas un pourcentage de progression par rapport à la valeur du ROC de la veille).
              Sinon la dernière ligne me paraît inexacte, si c'est la MME du KSTCT que tu veux. Il faut remplacer cloture par KSTCT, ce qui donne:
              MKSTCT = EXPOSUIV(MKSTCT, KSTCT, 8)

              A l'écran cela donne:
              <center><img src='http://upload.pro-at.com/01/lvmh_kst.gif' alt='' /></center>

              Si ce n'est toujours pas bon, donne moi des valeurs du KSTCT calculées par MetaStock, pour comparer.

              Commentaire


              • #8
                Bon alors ça roule...

                ======================================================

                // The Chandelier Exit selon Alexander Elder
                // p180 de 'Come Into My Trading Room'
                // -> sorties de tendances fortes MT

                // P1: True Range sur P1 jour
                // P2: Extrème sur P2 jour
                // P3: coef multiplicateur ATR

                //pour affichage EMA sur courbe
                EMA = EXPOSUIV(EMA,Cloture,P1)
                // ##### VERSION CORRIGÉE #####
                // True Range : la plus grande valeur absolue entre
                // - le plus haut et le plus bas du jour
                // - le plus haut du jour et la cloture d'hier
                // - le plus bas du jour et la cloture d'hier
                TR(0) = 0
                TR = MAXVAL( MAXVAL(Haut-Bas,ABSOLU(Haut-Cloture(1))), ABSOLU(Bas-Cloture(1)) )
                // ############################

                // Average True Range = la moyenne sur P1 jours
                // P1 = 22 équivaut à 1 mois si l'échelle est le jour
                ATR(0)=0
                ATR = MOYENNE(TR, P1)

                // Calcul du Chandelier: 2 courbes

                // tendance haussiere
                CHANDELIER_UPT = MAX(Haut, P2) - P3*ATR

                //tendance baissière
                CHANDELIER_DNT = MIN(Bas, P2) + P3*ATR

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

                Ce qui donne à l'écran:

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

                Commentaire


                • #9
                  Le SafeZone

                  Je l'affiche de deux manières:
                  - sur la courbe en appliquant un coef
                  - en tant qu'histogramme (dérivé) pour calcul de stops quand les courbes ne sont pas en phase avec les prix.

                  // D'après Alexander Elder
                  // p173 de 'Come Into My Trading Room'

                  // P1 : longueur de la période de recul (entre 10 et 20)
                  // P2 : coefficient multiplicateur de l'écart (entre 2 et 3)

                  EMA = EXPOSUIV(EMA,cloture,22)

                  //Déclaration de données historisées (équivalent à les utiliser comme courbes non affichées)
                  Val_UpPen(0)=0
                  Top_UpPen(0)=0
                  Avg_UpPen(0)=0
                  Val_DnPen(0)=0
                  Top_DnPen(0)=0
                  Avg_DnPen(0)=0

                  // ___ SafeZone en tendance baissière ___
                  SI(Haut>Haut(1)) ALORS
                  Val_UpPen = Haut-Haut(1)
                  Top_UpPen = 1
                  FINSI

                  NbPen = SOMME(Top_UpPen,P1)
                  SI(SOMME(Val_UpPen, P1)>0) ALORS
                  Avg_UpPen = SOMME(Val_UpPen, P1) / NbPen
                  FINSI

                  SAFEZONE_DNT = MIN(Haut(1)+P2*Avg_UpPen(1), 3)

                  // ___ SafeZone en tendance haussière ___
                  SI(Bas(1)>Bas) ALORS
                  Val_DnPen = Bas(1)-Bas
                  Top_DnPen = 1
                  FINSI

                  NbPen = SOMME(Top_DnPen,P1)
                  SI(SOMME(Val_DnPen, P1)>0) ALORS
                  Avg_DnPen = SOMME(Val_DnPen, P1) / NbPen
                  FINSI

                  SAFEZONE_UPT = MAX(Bas(1)-P2*Avg_DnPen(1),3)

                  <center><img src='http://upload.pro-at.com/01/safezone_1.gif' alt='' /></center>
                  Vous remarquerez la déclaration de deux courbes <Aucun> qui sont utilisées dans l'indicateur dérivé suivant(histogrammes)

                  //pénétrations
                  PEN_BAS= -Avg_DnPen
                  PEN_HAUT = AVG_UPPEN

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

                  Ce qui donne :

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

                  Commentaire


                  • #10
                    Le Canal

                    D'abord, faisons simple, pour le dessiner:

                    // P1 = longueur de MCANAL
                    // P2 = Coefficient du Canal
                    //MACANAL P1
                    EMA13=MOYENNE2
                    MCANAL = EXPOSUIV(MCANAL,cloture,P1)

                    //Ligne haute du canal
                    UCANAL = MCANAL * (1 + P2%)

                    //Ligne basse du canal
                    LCANAL = MCANAL - MCANAL * P2%

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

                    Voir le Thermomètre pour le dessin du canal

                    Commentaire


                    • #11
                      Enfin the big part: le calcul du coefficient de canal.

                      Là c'est un peu plus compliqué. Il n'est pas possible (ou alors j'ai pas compris) de faire une boucle simple dans le language de Graphe AT. La boucle s'opère obligatoirement par balayage des cours, ce qui modifie le pointeur de l'historique.
                      Bref j'aurais aimé pouvoir faire un truc du genre
                      POUR K = 1 à 30
                      ma routine de calcul
                      FIN POUR

                      Donc là, c'est du copier-coller de la même routine 30 fois jusqu'à obtention du bon résultat (et encore parce que je suppose que K <= 30)...

                      // P1 = nb de pénétrations pendant la période
                      // P2 = longueur de l'historique de calcul

                      K=1
                      UpPen=0
                      DnPen=0
                      POUR P2 COURS
                      SI (Haut>(CANAL.MCANAL*(1+K%))) ALORS UpPen = UpPen + 1
                      SI (Bas<(CANAL.MCANAL*(1-K%))) ALORS DnPen = DnPen + 1
                      SI((UpPen>P1) OU (DnPen>P1)) ALORS break
                      FINPOUR
                      SI ((UPPen<=P1)ET(DnPen<=P1)) ALORS STOP

                      // ------ DEBUT PARTIE DU CODE A COPIER/COLLER 28 FOIS -------
                      K=K+1
                      UpPen=0
                      DnPen=0
                      POUR P2 COURS
                      SI (Haut>(CANAL.MCANAL*(1+K%))) ALORS UpPen = UpPen + 1
                      SI (Bas<(CANAL.MCANAL*(1-K%))) ALORS DnPen = DnPen + 1
                      SI((UpPen>P1) OU (DnPen>P1)) ALORS break
                      FINPOUR
                      SI ((UPPen<=P1)ET(DnPen<=P1)) ALORS STOP
                      //---------- FIN PARTIE DU CODE A COPIER/COLLER 28 FOIS -------

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

                      pour calculer K et le reporter dans le P2 de CANAL il suffit alors de cliquer sur le bouton "Tester":
                      <center><img src='http://upload.pro-at.com/01/tester_ecarts.gif' alt='' /></center>

                      Donc ici K = 8 issu d'un calcul de 4 pénétrations sur 80 jours de cours.

                      Commentaire


                      • #12
                        Voilà.
                        Si vous avez d'autres façon de faire, des améliorations, des extensions, je suis preneur. <img src='http://www.pro-at.com/style/images/icones/icon_smile_big.gif' border='0' alt='' title='' align='middle' />

                        En ce qui me concerne, j'utilise plutôt le MACD histo et le ForceIndex(2) en tant qu'oscillateurs (en Journalier) et les MME comme indicateurs de tendances (en Hebdomadaire).
                        Je n'ai pas de flux intraday, et je n'en ai pas besoin pour l'horizon de trading que je me suis fixé.

                        Bien sûr je m'appuie également sur le Elder-Ray (Bull et Bear Power) pour confirmer, mais pour cela je préfère m'assurer que l'Impulse System ne donne pas de signal contraire à mon analyse.

                        Pour le moment je suis encore en phase d'apprentissage et de "ressenti" du marché, mais en backtestant (comme décrit dans le livre), et en appliquant les règles de money management, ça donne de bons résultats.
                        Y'a plus qu'a réunir le capital pour me relancer (ben oui, les warrant m'ont déjà ruiné une fois <img src='http://www.pro-at.com/style/images/icones/icon_smile_dead.gif' border='0' alt='' title='' align='middle' />, alors maintenant on y va avec méthode <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />)

                        Bon trades et à bientôt,
                        RickenBroc

                        Commentaire


                        • #13
                          <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citation :<hr height="1" noshade id="quote"><i>Citation de RickenBroc</i>
                          <br />
                          // True Range: la plus grande valeur entre
                          // - le plus haut et le plus bas du jour
                          // - le plus haut du jour et le plus bas d'hier
                          // - le plus bas du jour et le plus haut d'hier
                          TR(0) = 0
                          TR = MAX(MAX(Haut-Bas,Haut-Bas(1)),Haut(1)-Bas)

                          // Average True Range = la moyenne sur P1 jours
                          // P1 = 22 équivaut à 1 mois si l'échelle est le jour
                          ATR(0)=0
                          ATR = MOYENNE(TR, P1)
                          <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

                          Salut,

                          Je ne suis pas d'accord avec ta formule de l'ATR, voici la composition officiel de cet indicateur:

                          The True Range indicator is the greatest of the following:

                          The distance from today's high to today's low.

                          The distance from yesterday's close to today's high.

                          The distance from yesterday's close to today's low.
                          The Average True Range is a moving average (typically 14-days) of the True Ranges.

                          Perso j'ai programmé un indicateur avec 3 courbes: TR, ATR à 5j et ATR à 20j

                          <b>M1= Haut-Bas
                          M2= Cloture(1)- Haut
                          M3= Cloture(1)- Bas

                          TR = Maxval(MAXval(M2,M3), M1)

                          ATR = MOYENNE(TR, P2)

                          M2ATR = MOYENNE(TR, P1)</b>

                          // P1=5
                          // P2=20

                          Sinon tu sais où trouver une documentation sur la façon de programmer graphe AT pro.... pour le moment j'y vais un peu à taton.

                          Commentaire


                          • #14
                            Merci RickenBroc pour tous ces nouveaux indicateurs.Mais cela va m'obliger à acheter le livre d'Elder.<img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' />
                            Merci aussi à Portalis et Asynergy pour leur participation.

                            Commentaire


                            • #15
                              Correction pour la formule du True Range:

                              M2 = Haut - Cloture(1)

                              Commentaire

                              Chargement...
                              X