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

  • Bonjour Smallcaps,

    Encore merci pour ta réponse qui est dès plus complète. Comme tu le dis dans ton post, "on est plus à l’aise en expliquant comment on veut le faire". De ce côté, tu es champion, car tes explications sont claires.

    Je m’aperçois que toutes valeurs mémorisées dans Graphe AT Pro sont historisées, et qu’il n’est pas possible de créer un tableau indépendant (vieux reste de programmation sous Basic). Ce serai bien que Mlog complète son produit déjà très agréable par ce type de tableau ou matrice, car il est plus facile de travailler avec les valeurs qui nous intéressent et qui ont été mises dans un tableau et qu’elles se suivent.

    Je vais revenir sur quelques points pour préciser mon ébauche de programme :

    - Les variables vp1 et vp2 ne servent qu’à choisir sur quelle valeur on veut travailler, soit les +haut le les +bas ou sur la clôture. C’est pourquoi j’utilise les variables intermédiaires var_, cela évite de faire les tests à chaque fois.

    - Dans ton premier tableau de Novartis, on voit bien le décalage qui est créé par la variable rang. Pour moi elle me permettait de créer mon tableau indépendant comme je l’ai écrit plus haut.. Nous nous apercevons qu’il est parfois utile de bien connaître le principe de compilation. Cela explique que dans ma boucle tantque je n’arrivais pas à retrouver mes valeurs.

    Il faut donc que je retravaille le structure du programme pour essayer d’écrire se programme des tendances.

    Encore merci

    Cordialement


    Commentaire


    • Bonjour Michka,

      C'est bien çà, on ne peut utiliser actuellement que des variables "historisées" pour simuler des tableaux. Une nouvelle version du logiciel incluant cette fonctionnalité serait évidemment la bienvenue. Patience...
      Comme je te l'affirmais, la difficulté est de bien gèrer les indices définissant les positions des valeurs contenues dans ces tableaux. Que ce soit avec une boucle POUR ou une boucle TANTQUE, dont les principes de fonctionnement sont très différents ici, il est quand-même assez aisé de les calculer. On peut donc s'en sortir sans trop de peine.
      Alors au boulot ma foi...

      Cordialement.

      Commentaire


      • Bonjour à toutes et à tous,

        Si la statistique de recherche des <b>divergences positives potentielles</b> entre Cours de clôture et le Répulse vous intéresse, c'est ici...

        Programme :
        -----------------------<pre>
        //STATISTIQUE DE VALIDATION/CONFIRMATION
        //DES DIVERGENCES POSITIVES POTENTIELLES
        //DETECTEES PAR LE PROGRAMME : DIV_POS_REPULSE
        //V1.0 du 15/09/2005
        //

        //--------------------------------------------------------------
        //PARAMETRES A DEFINIR CI-DESSOUS
        //
        //EI : SEUIL RELATIF MINI DES ECARTS ENTRE CREUX SUR LE REPULSE
        //EC : SEUIL RELATIF MINI DES ECARTS ENTRE CREUX SUR LES COURS
        //
        //CHOIX=1 : SELECTIONNE LES DIVERGENCES POSITIVES POTENTIELLES
        // CE SONT CELLES QUI SONT DETECTEES PAR "DIV_POS_REPULSE".
        //
        //CHOIX=2 : SELECTIONNE LES DIVERGENCES POSITIVES VALIDEES
        // CE SONT LES DIVERGENCES POSITIVES POTENTIELLES
        // QUI RESPECTENT LES ECARTS IMPOSES : EI ET EC.
        //
        //--------------------------------------------------------------

        EI=0.01
        EC=0.01
        CHOIX=1
        //Attention, la valeur suivante doit être >= à la somme des paramètres
        //P1,P2,P4 du programme indicateur "DIV_POS_REPULSE"
        N=100

        POUR N COURS

        //RECUPERER LA VALEUR DU REPULSE AU CREUX LE PLUS RECENT
        //
        SI DIV_POS_REPULSE.SEG_P_I(1)<>0 ET DIV_POS_REPULSE.SEG_P_I=0
        ALORS
        C1_INDIC=DIV_POS_REPULSE.SEG_P_I(1)
        REPULSE_C1=DIV_POS_REPULSE.INDIC(1)
        FINSI

        //RECUPERER LA VALEUR DU COURS AU CREUX LE PLUS RECENT
        //
        SI DIV_POS_REPULSE.SEG_P_C(1)<>0 ET DIV_POS_REPULSE.SEG_P_C=0
        ALORS
        C1_COURS=DIV_POS_REPULSE.SEG_P_C(1)
        FINSI

        //RECUPERER LA VALEUR DU REPULSE AU CREUX LE PLUS ANCIEN
        //
        SI DIV_POS_REPULSE.SEG_P_I(1)=0 ET DIV_POS_REPULSE.SEG_P_I<>0
        ALORS
        C2_INDIC=DIV_POS_REPULSE.SEG_P_I
        FINSI

        //RECUPERER LA VALEUR DU COURS AU CREUX LE PLUS ANCIEN
        //
        SI DIV_POS_REPULSE.SEG_P_C(1)=0 ET DIV_POS_REPULSE.SEG_P_C<>0
        ALORS
        C2_COURS=DIV_POS_REPULSE.SEG_P_C
        FINSI

        //
        //CHERCHER LES DIVERGENCES POSITIVES POTENTIELLES EVENTUELLES
        //
        SI C1_INDIC<>0 ET C1_COURS<>0 ET C2_INDIC<>0 ET C2_COURS<>0
        ALORS
        SI CHOIX = 1
        ALORS
        COLONNE1 = "DIV POSITIVE POTENTIELLE SUR :"
        VARSELECT = 1
        BREAK
        FINSI

        //SELECTIONNER LES DIVERGENCES POSITIVES VALIDEES
        //
        SI ((C2_INDIC-C1_INDIC)/C2_INDIC)>=EI ET ((C2_COURS-C1_COURS)/C2_COURS)>=EC
        ALORS
        SI CHOIX = 2
        ALORS
        COLONNE1 = "DIV POSITIVE VALIDEE SUR :"
        VARSELECT = 1
        BREAK
        FINSI
        FINSI
        FINSI

        FINPOUR

        SI VARSELECT=1
        ALORS
        SELECTION
        FINSI
        -----------------------[</pre>
        <center><img src='http://images.pro-at.com/200509/b/prop_stat_pos.gif' alt='' /></center>
        Résultats en date d'hier sur le CAC40 avec les valeurs indiquées des paramètres ( P1 à P5 se règlent dans le programme indicateur DIV_POS_REPULSE, alors que CHOIX, EI, EC se règlent dans la statistique) :

        <font size="1">P1=10
        P2=20
        P3=2
        P4=0
        P5=1
        CHOIX=1
        Groupe : cac40 Date : 16/09/2005
        Validation/Confirmation des divergences positives potentielles
        entre cours et le REPULSE

        DIV POSITIVE POTENTIELLE SUR : AGF
        DIV POSITIVE POTENTIELLE SUR : Michelin
        DIV POSITIVE POTENTIELLE SUR : Publicis Group
        DIV POSITIVE POTENTIELLE SUR : STMicroelectronics

        P1=10
        P2=20
        P3=2
        P4=0
        P5=1
        EI=0.01
        EC=0.01
        CHOIX=2
        Groupe : cac40 Date : 16/09/2005
        Validation/Confirmation des divergences positives potentielles
        entre cours et le REPULSE

        DIV POSITIVE VALIDEE SUR : Michelin
        DIV POSITIVE VALIDEE SUR : STMicroelectronics

        P1=10
        P2=20
        P3=2
        P4=0
        P5=0
        CHOIX=1
        Groupe : cac40 Date : 16/09/2005
        Validation/Confirmation des divergences positives potentielles
        entre cours et le REPULSE

        DIV POSITIVE POTENTIELLE SUR : AGF
        DIV POSITIVE POTENTIELLE SUR : Dexia
        DIV POSITIVE POTENTIELLE SUR : France Telecom
        DIV POSITIVE POTENTIELLE SUR : L'Oreal
        DIV POSITIVE POTENTIELLE SUR : Lagardere
        DIV POSITIVE POTENTIELLE SUR : Michelin
        DIV POSITIVE POTENTIELLE SUR : Peugeot
        DIV POSITIVE POTENTIELLE SUR : Publicis Group
        DIV POSITIVE POTENTIELLE SUR : Renault
        DIV POSITIVE POTENTIELLE SUR : STMicroelectronics
        DIV POSITIVE POTENTIELLE SUR : TF1
        DIV POSITIVE POTENTIELLE SUR : Vivendi universal

        P1=10
        P2=20
        P3=2
        P4=0
        P5=0
        EI=0.01
        EC=0.01
        CHOIX=2
        Groupe : cac40 Date : 16/09/2005
        Validation/Confirmation des divergences positives potentielles
        entre cours et le REPULSE

        DIV POSITIVE VALIDEE SUR : France Telecom
        DIV POSITIVE VALIDEE SUR : L'Oreal
        DIV POSITIVE VALIDEE SUR : Michelin
        DIV POSITIVE VALIDEE SUR : Renault
        DIV POSITIVE VALIDEE SUR : STMicroelectronics
        DIV POSITIVE VALIDEE SUR : TF1</font id="size1">

        Exemple avec ST Micro :
        <center><img src='http://images.pro-at.com/200509/b/stmicro_div_pos.gif' alt='' /></center>

        Pour la recherche des <b>divergences négatives potentielles</b> maintenant :

        Programme :
        -----------------------<pre>
        //STATISTIQUE DE VALIDATION/CONFIRMATION
        //DES DIVERGENCES NEGATIVES POTENTIELLES
        //DETECTEES PAR LE PROGRAMME : DIV_NEG_REPULSE
        //V1.0 du 15/09/2005
        //

        //--------------------------------------------------------------
        //PARAMETRES A DEFINIR CI-DESSOUS
        //
        //EI : SEUIL RELATIF MINI DES ECARTS ENTRE SOMMETS SUR LE REPULSE
        //EC : SEUIL RELATIF MINI DES ECARTS ENTRE SOMMETS SUR LES COURS
        //
        //CHOIX=1 : SELECTIONNE LES DIVERGENCES NEGATIVES POTENTIELLES
        // CE SONT CELLES QUI SONT DETECTEES PAR "DIV_NEG_REPULSE".
        //
        //CHOIX=2 : SELECTIONNE LES DIVERGENCES POSITIVES VALIDEES
        // CE SONT LES DIVERGENCES NEGATIVES POTENTIELLES
        // QUI RESPECTENT LES ECARTS IMPOSES : EI ET EC.
        //--------------------------------------------------------------

        EI=0.01
        EC=0.01
        CHOIX=2
        //Attention, la valeur suivante doit être >= à la somme des paramètres
        //P1,P2,P4 du programme indicateur "DIV_NEG_REPULSE"
        N=100

        POUR N COURS

        //RECUPERER LA VALEUR DU REPULSE AU SOMMET LE PLUS RECENT
        //
        SI DIV_NEG_REPULSE.SEG_N_I(1)<>0 ET DIV_NEG_REPULSE.SEG_N_I=0
        ALORS
        S1_INDIC=DIV_NEG_REPULSE.SEG_N_I(1)
        MACD_S1=DIV_NEG_REPULSE.INDIC(1)
        FINSI

        //RECUPERER LA VALEUR DU COURS AU SOMMET LE PLUS RECENT
        //
        SI DIV_NEG_REPULSE.SEG_N_C(1)<>0 ET DIV_NEG_REPULSE.SEG_N_C=0
        ALORS
        S1_COURS=DIV_NEG_REPULSE.SEG_N_C(1)
        FINSI

        //RECUPERER LA VALEUR DU REPULSE AU SOMMET LE PLUS ANCIEN
        //
        SI DIV_NEG_REPULSE.SEG_N_I(1)=0 ET DIV_NEG_REPULSE.SEG_N_I<>0
        ALORS
        S2_INDIC=DIV_NEG_REPULSE.SEG_N_I
        FINSI

        //RECUPERER LA VALEUR DU COURS AU SOMMET LE PLUS ANCIEN
        //
        SI DIV_NEG_REPULSE.SEG_N_C(1)=0 ET DIV_NEG_REPULSE.SEG_N_C<>0
        ALORS
        S2_COURS=DIV_NEG_REPULSE.SEG_N_C
        FINSI


        //CHERCHER LES DIVERGENCES NEGATIVES POTENTIELLES EVENTUELLES
        //
        SI S1_INDIC<>0 ET S1_COURS<>0 ET S2_INDIC<>0 ET S2_COURS<>0
        ALORS
        SI CHOIX = 1
        ALORS
        COLONNE1 = "DIV NEGATIVE POTENTIELLE SUR :"
        VARSELECT = 1
        BREAK
        FINSI

        //SELECTIONNER LES DIVERGENCES NEGATIVES VALIDEES
        //
        SI ((S2_INDIC-S1_INDIC)/S2_INDIC)>=EI ET ((S1_COURS-S2_COURS)/S1_COURS)>=EC
        ALORS
        SI CHOIX = 2
        ALORS
        COLONNE1 = "DIV NEGATIVE VALIDEE SUR :"
        VARSELECT = 1
        BREAK
        FINSI
        FINSI
        FINSI
        FINPOUR

        SI VARSELECT=1
        ALORS
        SELECTION
        FINSI
        -----------------------[</pre>
        <center><img src='http://images.pro-at.com/200509/b/prop_stat_neg.gif' alt='' /></center>

        Résultats en date d'hier sur le CAC40 avec les valeurs indiquées des paramètres :

        <font size="1">P1=5
        P2=20
        P3=2
        P4=0
        P5=1
        CHOIX=1
        Groupe : cac40 Date : 16/09/2005
        Validation/Confirmation des divergences négatives potentielles
        entre cours et le REPULSE

        DIV NEGATIVE POTENTIELLE SUR : Alcatel
        DIV NEGATIVE POTENTIELLE SUR : Casino Guichard
        DIV NEGATIVE POTENTIELLE SUR : Danone
        DIV NEGATIVE POTENTIELLE SUR : Essilor International
        DIV NEGATIVE POTENTIELLE SUR : Renault
        DIV NEGATIVE POTENTIELLE SUR : Schneider
        DIV NEGATIVE POTENTIELLE SUR : Suez
        DIV NEGATIVE POTENTIELLE SUR : Thales
        DIV NEGATIVE POTENTIELLE SUR : Vivendi universal

        P1=5
        P2=20
        P3=2
        P4=0
        P5=1
        EI=0.01
        EC=0.01
        CHOIX=2
        Groupe : cac40 Date : 16/09/2005
        Validation/Confirmation des divergences négatives potentielles
        entre cours et le REPULSE

        DIV NEGATIVE VALIDEE SUR : Alcatel
        DIV NEGATIVE VALIDEE SUR : Casino Guichard
        DIV NEGATIVE VALIDEE SUR : Danone
        DIV NEGATIVE VALIDEE SUR : Essilor International
        DIV NEGATIVE VALIDEE SUR : Suez
        DIV NEGATIVE VALIDEE SUR : Thales
        DIV NEGATIVE VALIDEE SUR : Vivendi universal


        P1=5
        P2=20
        P3=2
        P4=0
        P5=0
        CHOIX=1

        Groupe : cac40 Date : 16/09/2005
        Validation/Confirmation des divergences négatives potentielles
        entre cours et le REPULSE

        DIV NEGATIVE POTENTIELLE SUR : Alcatel
        DIV NEGATIVE POTENTIELLE SUR : Casino Guichard
        DIV NEGATIVE POTENTIELLE SUR : Danone
        DIV NEGATIVE POTENTIELLE SUR : Essilor International
        DIV NEGATIVE POTENTIELLE SUR : Renault
        DIV NEGATIVE POTENTIELLE SUR : Schneider
        DIV NEGATIVE POTENTIELLE SUR : Suez
        DIV NEGATIVE POTENTIELLE SUR : Thales
        DIV NEGATIVE POTENTIELLE SUR : Vivendi universal

        P1=5
        P2=20
        P3=2
        P4=0
        P5=0
        EI=0.01
        EC=0.01
        CHOIX=2

        Groupe : cac40 Date : 16/09/2005
        Validation/Confirmation des divergences négatives potentielles
        entre cours et le REPULSE

        DIV NEGATIVE VALIDEE SUR : Alcatel
        DIV NEGATIVE VALIDEE SUR : Casino Guichard
        DIV NEGATIVE VALIDEE SUR : Danone
        DIV NEGATIVE VALIDEE SUR : Essilor International
        DIV NEGATIVE VALIDEE SUR : Suez
        DIV NEGATIVE VALIDEE SUR : Thales
        DIV NEGATIVE VALIDEE SUR : Vivendi universal</font id="size1">

        Un exemple avec Casino-Guichard :
        <center><img src='http://images.pro-at.com/200509/b/casino_guichard_div_neg.gif' alt='' /></center>

        Cordialement.

        Commentaire


        • j'arrive pas à programmer deux stats très simples , c'est pourqoi je sollicite de l'aide.
          1) stat pour détecter les valeurs qui se situent à l'intérieur des bandes de bollinger ET dont l'ecartement de ces bandes ne dépasse pas 3% sur 5 jours. En clair, que la valeur se situe pendant 5 jours à l'intérieur de bandes de bollinger hyperserrées.
          La variable 5 jours pouvant être modifiée à l'envie.

          2) détection de figure chandeliers: je souhaiterai pouvoir identifier 2 types de figure apparaissant sur une valeur: 1)un marteau suivi d'un marteau inversé
          2)un marteau inversé suivi d'un marteau

          Avec mes remerciements

          Commentaire


          • Merci Smallcaps <img src='http://www.pro-at.com/style/images/icones/icon_smile_big.gif' border='0' alt='' title='' align='middle' /> pour tout ce que tu nous apportes dans Graph AT <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />

            Je vais de ce pas, mettre ce nouveau prog de divergence ... qui va bien compléter ceux déjà existants et que j'utilise ... journalièrement.

            FOKI

            Commentaire


            • Merci pour tes encouragements FOKI...<img src='http://www.pro-at.com/style/images/icones/icon_smile_blush.gif' border='0' alt='' title='' align='middle' />...

              Sphinx voici 2 stats qui peuvent résoudre tes problèmes.

              1- BB resserrées.

              Programme ;
              <pre>
              // Statistique de recherche des valeurs dont les cours sont situés
              //à l'intérieur des BB et dont la variation des BB reste <= 3% sur 5 jours.
              //

              //PARAMETRES
              //
              NB_PERIODES=5 // à modifier éventuellement
              LIMITE=0.03

              POUR NB_PERIODES COURS
              SI HAUT<UBOLL ET BAS>LBOLL // cours dans les BB
              ALORS
              DANS_BB=1 // flag pour autoriser la sélection
              VAR_BB(0)=(UBOLL-LBOLL)/UBOLL // variations relatives des BB sur les derniers 5 jours
              SINON
              BREAK // on passe à une autre valeur si cours sort des BB
              FINSI
              FINPOUR

              SI DANS_BB=1 ET
              MAX(VAR_BB,NB_PERIODES)<LIMITE
              ALORS
              COLONNE1="Variation maxi entre les BB : " & ctxt$(MAX(VAR_BB,NB_PERIODES),4)
              SELECTION
              FINSI
              </pre>
              <center><img src='http://images.pro-at.com/200509/b/prop_bb2.gif' alt='' /></center>
              Résultats sur le CAC40 :

              <font size="1">Groupe : cac40 Date : 16/09/2005
              Statistique de recherche des valeurs dont les cours sont situés à l'intérieur des BB
              et dont la variation des BB reste <= 3% sur 5 jours.

              Variation maxi entre les BB : 0,0264 Publicis Group
              Variation maxi entre les BB : 0,0231 Saint Gobain</font id="size1">
              <center><img src='http://images.pro-at.com/200509/b/publicis_bb1.gif' alt='' /></center>

              2- Détection des figures en marteaux.

              Programme :
              <pre>
              // Statistique de reconnaissance de marteaux et marteaux inversés
              // ou de l'inverse

              //PARAMETRES :

              // Rapport maxi tolérable entre ombre haute du marteau
              // (et de l'ombre basse du marteau inversé) et le chandelier complet
              T=0

              // Rapport mini entre ombre basse et hauteur du corps plein
              // pour marteau et entre ombre haute et corps plein pour marteau inversé
              R=2

              //CHOIX = 1 détection de la figure marteau + marteau inversé
              //CHOIX = 2 détection de la figure marteau inversé + marteau

              CHOIX = 1

              I = (CHOIX=1)
              J = (CHOIX=2)


              //POUR 50 COURS

              MARTEAU =
              Corps(I)<>0 ET
              OmbreBas(I)>R*Corps(I) ET
              BasCorps(I)<=Cloture(I) ET
              OmbreHaut(I)=T

              MARTEAU_INVERSE =
              Corps(J)<>0 ET
              OmbreHaut(J)>R*Corps(J) ET
              BasCorps(J)<=Cloture(J) ET
              OmbreBAS(J)=T

              SI MARTEAU ET MARTEAU_INVERSE ALORS
              SI CHOIX=1 ALORS
              COLONNE1 = "Marteau puis Marteau inversé le : " & datehisto$
              SELECTION
              FINSI

              SI CHOIX=2 ALORS
              COLONNE1 = "Marteau inversé puis Marteau le : " & datehisto$
              SELECTION
              FINSI
              FINSI

              //FINPOUR
              </pre>
              <center><img src='http://images.pro-at.com/200509/b/prop_marteaux2.gif' alt='' /></center>

              Essai sur le SRD avec CHOIX=1 et la boucle POUR réactivée :
              (attention mon SRD n'est pas forcément à jour ds ma base...)

              <font size="1">Groupe : SRD Date : 16/09/2005
              Statistique de reconnaissance de marteaux et marteaux inversés
              ou de l'inverse

              Marteau puis Marteau inversé le : 16/05/2005 Bollore
              Marteau puis Marteau inversé le : 03/05/2005 GFI informatique
              Marteau puis Marteau inversé le : 13/09/2005 Hermes intl
              Marteau puis Marteau inversé le : 06/07/2005 Merck and Co
              Marteau puis Marteau inversé le : 22/06/2005 Neopost
              Marteau puis Marteau inversé le : 10/08/2005 Oberthur card syst
              Marteau puis Marteau inversé le : 21/07/2005 Pinguely-haulotte
              Marteau puis Marteau inversé le : 01/06/2005 Provimi
              <b>Marteau puis Marteau inversé le : 18/07/2005 Sony Corp.</b>
              Marteau puis Marteau inversé le : 28/07/2005 Trader classif.med
              Marteau puis Marteau inversé le : 02/06/2005 Unilog
              Marteau puis Marteau inversé le : 26/05/2005 Wendel Investissement</font id="size1">

              Puis avec CHOIX=2 :
              <font size="1">Groupe : SRD Date : 16/09/2005
              Statistique de reconnaissance de marteaux et marteaux inversés
              ou de l'inverse

              Marteau inversé puis Marteau le : 22/07/2005 Allianz
              Marteau inversé puis Marteau le : 09/06/2005 Alten
              Marteau inversé puis Marteau le : 11/08/2005 Canal+
              Marteau inversé puis Marteau le : 09/06/2005 Dassault Systemes
              Marteau inversé puis Marteau le : 02/09/2005 Deutsche bank
              Marteau inversé puis Marteau le : 18/07/2005 Hermes intl
              Marteau inversé puis Marteau le : 02/05/2005 Hsbc holdings plc
              Marteau inversé puis Marteau le : 09/08/2005 Oberthur card syst
              Marteau inversé puis Marteau le : 13/07/2005 Penauille Polyservices
              <b>Marteau inversé puis Marteau le : 16/09/2005 Sony Corp.</b>
              Marteau inversé puis Marteau le : 09/08/2005 Telefonica
              Marteau inversé puis Marteau le : 29/07/2005 Trader classif.med</font id="size1">
              <center><img src='http://images.pro-at.com/200509/b/sony1.gif' alt='' /></center>

              Cordialement.

              Commentaire


              • grand merci Smallcaps.
                Mais j'ai juste un soucis, il ne détecte que le marteau inversé et le marteau de Sony du 16/9. Je n'ai aucune autre valeur du SRD qui s'affiche ( dans la liste que tu proposes pour les 2 choix).

                j'ai fait la modif à " CHOIX =1" par CHOIX=2 pour le 2éme choix , c'est pas ça?

                Commentaire


                • Bonsoir Sphinx,

                  C'est normal :
                  - si tu cherches les figures qui peuvent apparaître lors de la dernière période seulement (avec CHOIX=1 ou CHOIX=2 peu importe) , tu n'actives pas la boucle POUR.
                  Ainsi la stat s'appliquera uniquement au dernier jour de ton historique (fais quand-même attention à la date qui se trouve en haut dans la fenêtre Statistiques dans laquelle tu lances le programme).
                  Dans ce cas, pour le SRD, seul Sony apparaît avec le CHOIX=2 et aucune valeur n'apparaît avec le CHOIX=1.

                  - par contre, si comme je l'ai fait, tu veux explorer plus de périodes que la dernière, il faut que tu actives la boucle POUR en enlevant les 2 barres de commentaires devant le POUR et le FINPOUR, et que tu choisisses le nombre de périodes dont tu veux remonter dans ton historique.

                  Bien cordialement.

                  Commentaire


                  • génial , tout baigne. Je ne connaissais pas cette astuce d'activation de boucle. J'ai collé le programme pour le weekly et ça fonctionne aussi.
                    Avec tous mes remerciements et mon amitié.
                    Sphinx

                    Commentaire


                    • OK Sphinx...
                      Bien sûr tu peux utiliser le même programme en Weekly ou en Monthly, çà marche également. Mais pas sur les 3 types de périodes simultanément dans le cas présent.


                      Une petite nouveauté en passant pour ceux de nos amis que cela intéresserait...
                      Il s'agit d'un nouvel indicateur que présente J. Ehlers, toujours aussi créatif, dans la livraison de TASC d'octobre 2005. Ehlers le nomme <b>FRAMA</b> ce qui signifie : <b>FRactal Adaptive Moving Average</b>.
                      Ce n'est ni plus ni moins qu'une moyenne exponentielle dont on fait varier le paramètre de calcul en fonction de considérations de géométrie fractale sur les cours.

                      Programme :
                      ----------------------------<pre>
                      //FRAMA (Fractal Adaptive Moving Average) de J. Ehlers
                      //d'après TASC oct 2005
                      //le 18/09/2005
                      //

                      PRIX=(HAUT+BAS)/2

                      N3=(MAX(HAUT,P1)-MIN(BAS,P1))/P1

                      H1=HAUT
                      B1=BAS
                      I=0
                      TANTQUE I<=0.5*P1-1 FAIRE
                      SI HAUT(I)>H1 ALORS H1=HAUT(I)
                      SI BAS(I)<B1 ALORS B1=BAS(I)
                      I=I+1
                      FINTANTQUE
                      N1=(H1-B1)/(0.5*P1)

                      H2=HAUT(P1/2)
                      B2=BAS(P1/2)
                      I=0.5*P1
                      TANTQUE I<=P1-1 FAIRE
                      SI HAUT(I)>H2 ALORS H2=HAUT(I)
                      SI BAS(I)<B2 ALORS B2=BAS(I)
                      I=I+1
                      FINTANTQUE
                      N2=(H2-B2)/(0.5*P1)

                      SI (N1>0 ET N2>0 ET N3>0) ALORS D=(LOG(N1+N2)-LOG(N3))/LOG(2)

                      ALPHA=EXP(-4.6*(D-1))

                      SI ALPHA<0.01
                      ALORS
                      ALPHA=0.01
                      SINON
                      SI ALPHA>1
                      ALORS
                      ALPHA=1
                      FINSI
                      FINSI

                      FRAMA=ALPHA*PRIX+(1-ALPHA)*FRAMA(1)

                      SI RANGHISTO<P1+1 ALORS FRAMA=PRIX
                      ----------------------------</pre>
                      Propriétés de la règle :
                      <center><img src='http://images.pro-at.com/200509/b/prop.gif' alt='' /></center>

                      Un exemple avec TF1 et un paramètre de recul du calcul P1=20 :
                      <center><img src='http://images.pro-at.com/200509/b/tf1seule.gif' alt='' /></center>

                      Bien que paraissant un peu plus éloignée des cours que d'autres moyennes mobiles adaptatives déjà présentées dans cette file, la FRAMA aurait 2 avantages sur celles-là.

                      Le premier avantage, et non des moindres, est qu'elle est relativement "plate" dans les périodes de trading range horizontal. Elle pourrait par conséquent être utilisée pour éviter les nombreux faux-signaux lorsqu'on souhaite utiliser une technique du type croisements de moyennes mobiles.
                      On peut montrer que le momentum à 5 jours (ROC) de la FRAMA est lui aussi évidemment beaucoup plus plat que le même momentum calculé sur le prix tel qu'il est utilisé dans cette nouvelle moyenne. C'est ce que montre le graphe ci-dessous pour TF1.
                      <center><img src='http://images.pro-at.com/200509/b/tf1.gif' alt='' /></center>
                      On constate bien la platitude plus importante du momentum de la FRAMA (courbe bleue sous les cours) dans la zone de trading range horizontal AB, comparativement au momentum classique (courbe rouge).

                      Le deuxième avantage de la FRAMA est sa plus grande réactivité aux changements de tendances : une augmentation de moins de 1% de son momentum à 5 jours traduirait un changement de tendance. On prendrait ainsi position beaucoup plus tôt que sur un breakout du canal horizontal.
                      Je n'ai pas encore eu le temps d'examiner la véracité de tout ceci, mais je livre ce nouvel indicateur à votre jugement...
                      Qu'en pensez-vous?

                      Si vous êtes intéressés également par le tracé des momentums, en voici le programme très simple que j'ai défini comme règle dérivée de la précédente pour pouvoir récupérer les valeurs de la variable FRAMA :
                      <pre>
                      //Calcul du ROC à P1 périodes de la FRAMA
                      //le 18/09/2005
                      //

                      ROC_FRAMA=100*(FRAMA/FRAMA(P1)-1)

                      //Et uniquement à des fins de comparaison :
                      ROC_CLASSIQUE = 100*((HAUT+BAS)/(HAUT(P1)+BAS(P1))-1)
                      </pre>
                      <center><img src='http://images.pro-at.com/200509/b/prop_momentums.gif' alt='' /></center>

                      Cordialement.

                      Commentaire


                      • très surprenant le ROC Frama, il ressemble comme 2 gouttes d'eau à l'indice coppock déjà développé ici. La ressemblance est frappante avec les pics et les creux. Par contre , il est plus lissé dans la phase "sans tendance" car il est posé sur la ligne du zéro., donc plus simple (à première vue )d'éviter les fausses sorties, ce que n'excluait pas le coppock.
                        Merci Smallcaps.

                        Commentaire


                        • Exact Sphinx. Ce sont 2 ROC d'éléments qui ne sont pas totalement étrangers, même s'ils sont différents, il est donc normal qu'ils aient cet air de famille.
                          L'intérêt du ROC_FRAMA est quand-même bien sa grande proximité de la ligne 0 dans les périodes sans tendance. Pour TF1, il est toujours situé sous la ligne des 0.5% dans la zone AB de mon graphe! Cà devrait être utilisable çà...
                          D'autres idées?

                          Commentaire


                          • pas d'autre idée mais une nouvelle demande :
                            peux t on faire une stat de stats?
                            Je m'explique : on a tous paramétré (grace à toi et d'autres intervenants ici => grand merci à tous) de multitudes statistiques où des valeurs sont sélectionnées.
                            Ne pourrait on pas faire une statistique sur toutes ces stats où les valeurs détectées apparaitraient avec les stats correspondantes , le tout classé par ordre décroissant en fonction du nombre de détection.
                            Exemple j'ai pas refait tourner la bécane donc pas le reflet de la réalité)

                            Vallourec : croisement MM100 à la hausse; Stoch en surachat, croisement RSI à la baisse, volume supérieur à 3X (il ya 4 détections)
                            Capgemini : croisement MME 20 à la baisse, sort des Bollingers, MACD casse la ligne de signal ( il y a 3 détections)
                            Zodiac : 2 détections
                            Altran 1 détection

                            Ca permettrait d'avoir une vue globale et synthétique mais je sais pas si c'est faisable.

                            Commentaire


                            • Bonjour Sphinx,

                              Cà ressemble un peu à ce qu'on peut faire avec les tableaux croisés dynamiques d'Excel çà.
                              A priori je ne vois pas comment procéder pour réaliser une stat de différentes stats qui auraient tourné préalablement et séparément. Comment transmettre les résultats qui s'affichent dans les rapports de stats à une autre stat? Ce n'est pas possible actuellement avec GrapheAT Pro.

                              Néanmoins on peut trouver des "échappatoires". Comme il est possible de transmettre des variables historisées et calculées par des règles indicateurs diverses à une stat, on pourrait très bien imaginer d'écrire une règle stat unique dans laquelle des tests et /ou des calculs ad'hoc nous permettraient de faire ce que tu souhaites après avoir récupéré les variables utiles.
                              On dispose de 9 colonnes pour nous exprimer dans le rapport de stat. Ceci nous laisse de la marge pour y loger les résultats attendus.

                              Reste à écrire un cahier des charges et à programmer cela...

                              Cordialement.

                              Commentaire


                              • Hello Smallcaps, si je comprend bien, l'idée serait de choisir 9 stats parmi celles qui sont le plus intéressantes et faire tourner la moulinette? car il n'y a que 9 colonnes. On pourrait alors répéter l'opération avec 9 autres stats, ce qui ferait 18 stats "brassées" etc... Si jamais on "pyramide" ceci jusqu'au bout, on peut mouliner 81 stats en 9 tours de pistes. Et on fait ensuite l'ultime tour pour mouliner ces 9 stats contenant chacune 9 stats. On aura alors brasser 81 stats. (Euh, j'en n'ai pas autant )
                                Ceci permettrai d'avoir les valeurs qui sortent avec le plus de paramètres sélectionnés.
                                A voir
                                Amicalement
                                Sphinx

                                Commentaire

                                Chargement...
                                X