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

  • si certains sont interessés, je peux poster ce we :
    - le KCD et le PEAK de cynthia kase (le PEAK a déjà été programmé par smallcaps), le KCD c'est un histogramme
    - les stopdeveloppment
    a plus

    Commentaire


    • Merci Small Cap , j'espérais bien que tu jettes un oeil <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />
      j'avais tenté qq chose mais j'ai tout mis à la corbeille <img src='http://www.pro-at.com/style/images/icones/icon_smile_sad.gif' border='0' alt='' title='' align='middle' />

      Je vais de ce pas intégrer cela dans mon soft et voir comment tout celà réagit avec mes titres préférés..

      Effectivement Augusseau ce n'est qu'une partie de l'isberg, car l'approche complète à l'air interessante avec sa gestion des stops , tu les as expérimentés , si oui tel qu'elle les présente avec son systeme complet ou différement ?

      Commentaire


      • Bonsoir

        Voici le module stat pour le RWI

        <center><img src='http://images.pro-at.com/200512/b/graph.gif' alt='' /></center>

        Utilisation du prog habituel de Smallcaps

        //STATISTIQUE DE CROISEMENT RWI


        ACTION_SELECT=0
        N=1 //tu peux changer cette valeur suivant tes souhaits

        POUR N COURS

        SI CROISE(RWI.H_RWI,RWI.B_RWI)>0
        ALORS
        ACTION_SELECT=1
        COLONNE1 = "RWI croise à la hausse le " & DATEHISTO$ & " ---> ACHAT"
        FINSI

        SI CROISE(RWI.H_RWI,RWI.B_RWI)<0
        ALORS
        ACTION_SELECT=1
        COLONNE1 = "RWI croise à la baisse le " & DATEHISTO$ & " ---> VENTE"
        FINSI

        FINPOUR

        SI ACTION_SELECT=1
        ALORS
        SELECTION
        FINSI

        Commentaire


        • Merci pour ta stat FOKI...

          Je viens de me rendre compte que C. Kase n'utilise pas l'écart-type tel que nous avons dans GrapheAT Pro dans son programme du KPO.
          En effet elle emploie la définition de l'écart-type d'un échantillon (avec P1=30) et non celui de la population. Le diviseur de la somme des carrés des différences entre le PEAK et sa moyenne à 30 jours est ici divisé par P1-1=29 et non pas 30 comme dans la fonction ECARTYPE de GrapheAT Pro.
          La différence, ainsi que le montre le graphe ci-dessous, n'est évidemment pas très importante. Néanmoins j'ai corrigé le programme du KPO à la page précédente.
          Il suffit de supprimer la ligne rouge barrée et de la remplacer par les lignes bleues.
          <center><img src='http://images.pro-at.com/200512/b/ecart_type_kpo_essilor.gif' alt='' /></center>

          Bonne journée.

          Commentaire


          • voici les indicateurs de cynthia kase (en tout cas ce que j'ai pu faire de mieux car les formules sont parfois contradictoires entre les écrits)

            PEAK OSCILLATOR :


            VOLG1(0)=LOG(CLOTURE(1)/CLOTURE)
            VOLG2(0)=ECARTYPE(VOLG1,P1)
            VOLG(0)=VOLG2*RACINE(252)
            RHW(0)=LOG(haut/bas(P1))/(VOLG*RACINE(P1))
            RHL(0)=LOG(haut(P1)/bas)/(VOLG*RACINE(P1))
            PEAK1(0)=RHW-RHL
            i = 10
            TantQue i<P1 Faire
            V=ECARTYPE(LOG(CLOTURE(1)/CLOTURE),i)
            RHWT=LOG(haut/bas(I))/(V*RACINE(I))
            RHLT=LOG(haut(I)/bas)/(V*RACINE(I))
            SI RHWT>RHW ALORS RHW=RHWT
            SI RHLT>RHL ALORS RHL=RHLT
            i = i + 1
            FinTantQue
            PEAK(0)=MOYENNE(RHW-RHL,3)
            MN(0)=MOYENNE(PEAK,20)
            SD(0)=ECARTYPE(PEAK,20)
            si peak>=0 alors int(0)=peak sinon int(0)=-peak
            maxi=max(int,50)

            SI (MN+2*SD)>0.9*maxi ALORS VAL1(0)=MN+2*SD SINON VAL1(0)=0.9*maxi
            SI (MN-2*SD)<-0.9*maxi alors VAL2(0)=MN-2*SD SINON VAL2(0)=-0.9*maxi
            SI PEAK(1)>0 et PEAK>0 alors LN = VAL1
            sinon
            si PEAK(1)<0 et PEAK<0 alors LN=val2 sinon LN=0
            finsi
            si peak>peak(1) alors RED=0 sinon RED=PEAK
            SI PEAK<=PEAK(1) alors green=0 sinon green=peak


            <center><img src='http://images.pro-at.com/200512/b/peak2.jpg' alt='' /></center>

            ce qui donne
            <center><a href='http://images.pro-at.com/200512/b/peak.gif' target='_blank' style='display:block; width:600px; border:2px dashed #888; padding:10px'><img src="http://images.pro-at.com/200512/b/peak.gif" alt='' width='600' height='350' /><em style='display:block; text-align: right'>Cliquez pour agrandir</em></a></center>

            P1 est le nombre d'échantillons prix pour calculer cet indicateur adaptatif




            son dérivé le KCD

            KCD=PEAKOSCILLATOR.PEAK-MOYENNE(PEAKOSCILLATOR.PEAK,P1)

            <center><img src='http://images.pro-at.com/200512/b/kcd.jpg' alt='' /></center>

            P1 est le nombre de jour de la moyenne
            <center><a href='http://images.pro-at.com/200512/b/peak1.gif' target='_blank' style='display:block; width:600px; border:2px dashed #888; padding:10px'><img src="http://images.pro-at.com/200512/b/peak1.gif" alt='' width='600' height='350' /><em style='display:block; text-align: right'>Cliquez pour agrandir</em></a></center>




            et les STOP DEV basés juste sur la volatilité

            HT(0)=MAX(HAUT,2)
            BS(0)=MIN(BAS,2)
            TR(0) = MAXVAL( MAXVAL(HT-BS,ABSOLU(HT-Cloture(2))), ABSOLU(BS-Cloture(2)) )
            ATR(0)=MOYENNE(TR,P1)
            SDEV(0)=ECARTYPE(TR,P1)
            DEV1(0)=CLOTURE-ATR
            DEV2(0)=CLOTURE-ATR-SDEV
            DEV3(0)=CLOTURE-ATR-2.2*SDEV
            DEV4(0)=CLOTURE-ATR-3.6*SDEV
            SI DEV1<DEV1(1) et cloture>DEV4(1) alors DEV1=DEV1(1)
            SI DEV2<DEV2(1) et cloture>DEV4(1) alors DEV2=DEV2(1)
            SI DEV3<DEV3(1) et cloture>DEV4(1) alors DEV3=DEV3(1)
            SI DEV4<DEV4(1) et cloture>DEV4(1) alors DEV4=DEV4(1)
            DEV5(0)=CLOTURE+ATR
            DEV6(0)=CLOTURE+ATR+SDEV
            DEV7(0)=CLOTURE+ATR+2.2*SDEV
            DEV8(0)=CLOTURE+ATR+3.6*SDEV
            SI DEV5>DEV5(1) et cloture<DEV8(1) alors DEV5=DEV5(1)
            SI DEV6>DEV6(1) et cloture<DEV8(1) alors DEV6=DEV6(1)
            SI DEV7>DEV7(1) et cloture<DEV8(1) alors DEV7=DEV7(1)
            SI DEV8>DEV8(1) et cloture<DEV8(1) alors DEV8=DEV8(1)


            <center><img src='http://images.pro-at.com/200512/b/stopdev.jpg' alt='' /></center>

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


            pour kiki, j'utilise les stop dev uniquement en milieu de trade pour essayer d'optimiser le trade et avoir un stop qui ne se fait pas toucher
            en début et en fin, je préfere un stop serré (bougie)

            Commentaire


            • complément : l'utilisation des indicateurs est indiquée dans des fichiers PDF que l'on trouve avec Google
              je pense qu'ils peuvent donner de bons résultats (en tout cas bien meilleur que le MACD... puisqu'ils sont adaptatifs)
              je ne les utilise pas systématiquement car ils sont trop long à l'affichage

              je les ai retenu (après backtest) :
              - comme facteur validant (parfois précuseur) d'une consolidation (passage du 0 par le KCD) alors que le PEAK est toujours du signe de la tendance
              - signal de fin de tendance : peak suracheté... KCD diverge

              si certains on lu tom williams (utilisation des volumes) j'avais commencé à mettre en équation ses interprétations (c'est du dégrossi). j peux le poster (il faudrait bcp plus d'heures pour faire qq chose de propre)


              enfin question pour smallcaps (le matheux de référence) :
              je ne m'explique pas comment il n'y a pas de torsion des moyennes longues sur ton graphe. J'avais également observé ce phénomène mais pour moi au changement de tendance la MM courte doit croiser la longue. si tu as une réponse merci!

              Commentaire


              • tant qu'a poster je vais finir pour ma contribution
                (smallcaps annule ma dernière question qui était bête)

                pour ceux qui ont lu Tom waits (utilisation des volumes de chque période)
                voici une tentative de modélisation de son bouquin (c'est une première approche)
                les fleches
                vertes : signe de force
                rouge : signe de faiblesse
                bleu : shake out
                gris = vert ou rouge invalidé
                les points jaune
                hauts = up thrust
                bas = test

                le code :
                CLOS(0)=(CLOTURE-BAS)/(HAUt-BAS)*100
                SPREAD(0) = HAUt - BAS
                RANGE(0)=MOYENNE(HAUt-BAS,5)
                MOYVOL(0)=MOYENNE(VOLUME,40)
                TENDANCE(0)=CLOTURE-CLOTURE(10)
                // detection UP Thrust
                SI SPREAD>0.5*RANGE et CLOS<20 ET HAUT>HAUT(1) ET CLOTURE(1)>=CLOTURE(2) ALORS UT(0)=1 sinon UT(0)=0
                si UT=1 alors UT2=HAUT
                // Annulation Ut Thrust
                SI UT(1)=1 ET CLOTURE>=CLOTURE(1) ALORS UT(1)=0 ET SOS=1
                SI UT(2)=1 ET CLOTURE>=CLOTURE(2) ALORS UT(2)=0 ET SOS=1
                SI UT(3)=1 ET CLOTURE>=CLOTURE(3) ALORS UT(3)=0 ET SOS=1

                // detection TEST
                SI CLOS>75 ET (HAUT<=HAUT(1) OU BAS<=BAS(1)) ALORS TEST(0)=1 sinon TEST(0)=0

                // CLOTURE sous TEST
                SI TEST(1)=1 et CLOTURE<BAS(1) ALORS SOW=1
                SI TEST(2)=1 et CLOTURE<BAS(2) ALORS SOW=1


                // CONFIRMATION DE TEST
                SI TEST(1)=1 et CLOTURE>HAUT(1) et CLOS>60 ALORS SOS=1
                SI TEST(1)=1 et CLOTURE>HAUT(1) et CLOS<60 ALORS SOW=1
                SI TEST(2)=1 et CLOTURE(1)<HAUT(2) et CLOTURE>HAUT(2) ALORS SOS=1
                SI TEST(3)=1 et CLOTURE(2)<haut(3) et CLOTURE(1)<HAUT(3) et CLOTURE<HAUT(3) alors SOW=1

                // SHAKE OUT
                SI CLOS(1)<20 et SPREAD>RANGE et CLOTURE<MOYENNE(CLOTURE,5) et CLOS>60 et CLOTURE<0.5*(BAS(1)+HAUt(1))alors SHAKE=1


                // CLOTURE sous SHAKE
                SI SHAKE(1)=1 et CLOTURE<BAS(1) ALORS SOW=1
                SI SHAKE(2)=1 et CLOTURE<BAS(2) ALORS SOW=1

                //SOW ou SOS
                SI SPREAD(1)>1.5*RANGE(1) ET CLOS(1)>70 et CLOS<40 et VOLUME<0.66*VOLUME(1) ALORS SOS=1
                SI TENDANCE>=0 et CLOS<40 et VOLUME>MOYVOL ALORS SOW=1
                SI TENDANCE<0 et CLOS>70 et VOLUME>MOYVOL ALORS SOS=1



                //CLoture contraire à SOW ou SOS
                SI SOW(1)=1 et CLOTURE>=HAUT(1) alors
                SOS=1
                SOW2(1)=1
                FINSI
                SI SOS(1)=1 et CLOTURE<=BAS(1) alors
                SOW=1
                SOS2(1)=1
                FINSI
                SI SOW(2)=1 et CLOTURE(1)<HAUT(2) et CLOTURE>HAUT(2) alors
                SOS=1
                SOW2(2)=1
                FINSI
                SI SOS(2)=1 et cloture(1)>bas(2) et CLOTURE<BAS(2) alors
                SOW=1
                SOS2(2)=1
                FINSI
                SI SOW(3)=1 et CLOTURE(1)<HAUT(3)et CLOTURE(2)<HAUT(3) et CLOTURE>HAUT(3) alors
                SOS=1
                SOW2(3)=1
                FINSI
                SI SOS(3)=1 et cloture(1)>bas(3) et CLOTURE(2)>BAS(3) et CLOTURE<BAS(3) alors
                SOW=1
                SOS2(3)=1
                FINSI
                SI TEST=1 ALORS TEST2=BAS

                // SOS en montée
                SI SPREAD(1)>RANGE et VOLUME(1)>MOYVOL et CLOS<50 et cloture<cloture(1) et VOLUME<MOYVOL ALORS CSOS=1

                <center><img src='http://images.pro-at.com/200512/b/screenhunter_2.jpg' alt='' /></center>

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

                si certains s'y sont interessés je suis preneur pour des échanges d'analyse (même à postériori) afin de progresser

                Commentaire


                • Merci pour cet apport intéressant Augusseau.
                  Ton programme du Kase Peak Oscillator est, semble-t-il, plus récent et aussi plus réactif que celui que j'ai posté à la page précédente.
                  As-tu reçu mon email?
                  Bonne journée.

                  Commentaire


                  • Bonjour,

                    Si vous avez copié/collé le programme du RWI que j'ai posté page 68, la correction d'une erreur dans l'instruction qui calcule le "True Range" (TR) a été effectuée en tête de programme.
                    Avec mes excuses.

                    Commentaire


                    • Bonjour à tous

                      Pour compléter les outils de l'indicateur RWI, voici le prog de détection de divergences sur l'Oscillateur RWI que Smallcaps à dérivé du RWI.

                      Prog de divergence négatives :
                      <center><img src='http://images.pro-at.com/200512/b/divneg.gif' alt='' /></center>
                      Programme :

                      //DIV_NEG_RWI
                      //

                      //RECHERCHER LA DIVERGENCE NEGATIVE EVENTUELLE
                      //LA PLUS RECENTE ENTRE LES COURS ET l'Oscillateur RWI
                      //DANS LES LIMITES DEFINIES PAR P1, P2, P3 et P4
                      //V1 du 11/12/2005
                      //

                      //----------------------------------------------
                      //PARAMETRES P1 à P5 :
                      //
                      //LA DIVERGENCE POTENTIELLE EVENTUELLE DEVRA
                      //SE TROUVER P4 PERIODES AU MOINS AVANT LA FINHISTO.
                      //
                      //LE 1ER SOMMET SUR l'Oscillateur RWI DEVRA SE TROUVER
                      //DANS LES P1 PERIODES PRECEDANT FINHISTO-P4.
                      //
                      //LE 2EME SOMMET SUR l'Oscillateur RWI DEVRA SE TROUVER
                      //DANS LES P2 PERIODES PRECEDANT LE 1ER.
                      //
                      //CHAQUE SOMMET SUR LES COURS POURRA SE TROUVER
                      //DANS LES P3 PERIODES PRECEDANT LES SOMMETS
                      //CORRESPONDANTS SUR l'Oscillateur RWI.
                      //
                      //P5=0 ACCEPTE LES DIVERGENCES DONT LES DROITES
                      //PRESENTENT DES INTERSECTIONS AVEC LES COURS
                      //ET/OU l'Oscillateur RWI.
                      //P5=1 NE LES ACCEPTE PAS.
                      //----------------------------------------------

                      //Initialisations
                      //
                      INDIC=OSCIL_RWI.OSC_RWI
                      MAXI=0

                      SI RANGHISTO=FINHISTO-P4 //On explore jusqu'à P4 périodes avant la FINHISTO
                      ALORS

                      //Chercher un 1er sommet (SI1) et sa date (DATE_SI1) sur l'indicateur
                      //
                      I=0
                      SI1=MAXI
                      TANTQUE I<=P1 FAIRE
                      SI INDIC(I+1)>0
                      ALORS
                      SI INDIC(I+2)<INDIC(I+1) ET INDIC(I+1)>INDIC(I)
                      ALORS
                      SI INDIC(I+1)>=SI1
                      ALORS
                      SI1=INDIC(I+1)
                      DATE_SI1=FINHISTO-P4-(I+1)
                      D1=I+1
                      FINSI
                      FINSI
                      FINSI
                      I=I+1
                      FINTANTQUE

                      SI D1=0
                      ALORS
                      AFFICHER "=======PAS DE 1ER SOMMET RECENT SUR LE l'Oscillateur RWI======="
                      AFFICHER "===============MODIFIEZ P1 ET/OU P4 ================="
                      STOP
                      FINSI

                      //Chercher le 1er sommet (SC1) et sa date (DATE_SC1)
                      //sur les cours avec une tolérance de P3 périodes
                      //avant le 1er sommet sur l'indicateur
                      //
                      SC1=HAUT(FINHISTO-P4-DATE_SI1)
                      DATE_SC1=DATE_SI1
                      K=FINHISTO-P4-DATE_SI1+1
                      TANTQUE K<=FINHISTO-P4-DATE_SI1+P3 FAIRE
                      SI HAUT(K)>=SC1
                      ALORS
                      SC1=HAUT(K)
                      DATE_SC1=FINHISTO-K-P4
                      FINSI
                      K=K+1
                      FINTANTQUE

                      //Chercher un 2ème sommet plus ancien (SI2)
                      //et sa date (DATE_SI2) sur l'indicateur
                      //
                      J=D1+1
                      SI2=SI1
                      TANTQUE J<=P2+D1 FAIRE
                      SI INDIC(J+2)<INDIC(J+1) ET INDIC(J+1)>INDIC(J)
                      ALORS
                      SI INDIC(J+1)>=SI2
                      ALORS
                      SI2=INDIC(J+1)
                      DATE_SI2=FINHISTO-P4-(J+1)
                      D2=1
                      FINSI
                      FINSI

                      SI D2=1 //SI2 est un sommet possible sur l'indicateur
                      ALORS

                      SI P5=1 //La droite SI1--SI2 doit être au-dessus de l'indicateur
                      ALORS
                      PENTE_I=(SI1-SI2)/(DATE_SI1-DATE_SI2)
                      POUR (FINHISTO-P4-DATE_SI2+1) COURS
                      POINT_I(0)= PENTE_I*(RANGPOUR-1)+SI2
                      SI POINT_I<INDIC
                      ALORS
                      N=1
                      BREAK
                      FINSI
                      SI RANGPOUR>(DATE_SI1-DATE_SI2) ALORS BREAK
                      FINPOUR
                      FINSI

                      SI N=0 //Droite de divergence SI1--SI2 correcte
                      ALORS
                      //Chercher le 2ème sommet (SC2) et sa date (DATE_SC2)
                      //sur les cours avec une tolérance de P3 périodes
                      //avant le 2ème sommet sur l'indicateur
                      //
                      SC2=HAUT(FINHISTO-P4-DATE_SI2)
                      DATE_SC2=DATE_SI2
                      K=FINHISTO-P4-DATE_SI2+1
                      TANTQUE K<=FINHISTO-P4-DATE_SI2+P3 FAIRE
                      SI HAUT(K)>=SC2
                      ALORS
                      SC2=HAUT(K)
                      DATE_SC2=FINHISTO-K-P4
                      FINSI
                      K=K+1
                      FINTANTQUE

                      SI SC2<=SC1 //SC2 est un sommet possible sur les cours
                      ALORS

                      SI P5=1 //La droite SC1--SC2 doit être au-dessus des cours
                      ALORS
                      PENTE_C=(SC1-SC2)/(DATE_SC1-DATE_SC2)
                      POUR (FINHISTO-P4-DATE_SC2+1) COURS
                      POINT_C(0) =PENTE_C*(RANGPOUR-1)+SC2
                      SI POINT_C<HAUT
                      ALORS
                      M=1
                      BREAK
                      FINSI
                      SI RANGPOUR>(DATE_SC1-DATE_SC2) ALORS BREAK
                      FINPOUR
                      FINSI

                      SI M=0 //Droite de divergence SC1--SC2 correcte
                      ALORS
                      J=P2+D1+1
                      SINON
                      D2=0
                      FINSI
                      SINON
                      D2=0
                      FINSI
                      SINON
                      D2=0
                      FINSI
                      FINSI
                      N=0
                      M=0
                      J=J+1
                      FINTANTQUE

                      SI D1<>0 ET D2=0 OU SC2=0
                      ALORS
                      AFFICHER "============PAS DE DIVERGENCE POTENTIELLE============="
                      AFFICHER "======AVEC LES VALEURS ACTUELLES DES PARAMETRES======="
                      AFFICHER "=MAIS IL Y A UN 1ER SOMMET SUR l'Oscillateur RWI ET LES COURS="
                      AFFICHER "==============MODIFIEZ EVENTUELLEMENT P2=============="
                      STOP
                      FINSI

                      //Déterminer les points de la divergence potentielle trouvée
                      //s'ils peuvent être tracés sur l'indicateur et sur les cours
                      //
                      SI DATE_SC1-DATE_SC2=1 //La valeur 2 peut-être modifiée
                      ALORS
                      AFFICHER "=============DIVERGENCE POTENTIELLE============"
                      AFFICHER "==========TROP PETITE POUR ETRE TRACEE========="
                      AFFICHER "===========MODIFIEZ EVENTUELLEMENT P4=========="
                      SINON
                      PENTE_I=(SI1-SI2)/(DATE_SI1-DATE_SI2)
                      POUR (FINHISTO-P4-DATE_SI2+1) COURS
                      SEG_N_I(0)=PENTE_I*(RANGPOUR-1)+SI2
                      SI RANGPOUR>(DATE_SI1-DATE_SI2) ALORS BREAK
                      FINPOUR

                      PENTE_C=(SC1-SC2)/(DATE_SC1-DATE_SC2)
                      POUR (FINHISTO-P4-DATE_SC2+1) COURS
                      SEG_N_C(0)=PENTE_C*(RANGPOUR-1)+SC2
                      SI RANGPOUR>(DATE_SC1-DATE_SC2) ALORS BREAK
                      FINPOUR
                      FINSI

                      FINSI

                      Fenêtre propriétés :
                      <center><img src='http://images.pro-at.com/200512/b/fenetreneg.gif' alt='' /></center>

                      Commentaire


                      • Pour le même prix voici le programme de divergences positives sur l'oscillateur du RWI .

                        <center><img src='http://images.pro-at.com/200512/b/divpos.gif' alt='' /></center>

                        Programme :
                        //DIV_POS_RWI
                        //

                        //RECHERCHER LA DIVERGENCE POSITIVE EVENTUELLE
                        //LA PLUS RECENTE ENTRE LES COURS ET L'oscillateur RWI
                        //DANS LES LIMITES DEFINIES PAR P1, P2, P3, P4 et P5
                        //V 1.0 du 11/12/2005
                        //

                        //----------------------------------------------
                        //DEFINITION DES ROLES DES PARAMETRES P1 à P5 :
                        //
                        //LA DIVERGENCE POTENTIELLE EVENTUELLE DEVRA
                        //SE TROUVER P4 PERIODES AU MOINS AVANT LA FINHISTO.
                        //
                        //LE 1ER CREUX SUR L'oscillateur RWI DEVRA SE TROUVER
                        //DANS LES P1 PERIODES PRECEDANT FINHISTO-P4.
                        //
                        //LE 2EME CREUX SUR L'oscillateur RWI DEVRA SE TROUVER
                        //DANS LES P2 PERIODES PRECEDANT LE 1ER.
                        //
                        //CHAQUE CREUX SUR LES COURS POURRA SE TROUVER
                        //DANS LES P3 PERIODES PRECEDANT LES SOMMETS
                        //CORRESPONDANTS SUR L'oscillateur RWI.
                        //
                        //P5=0 ACCEPTE LES DIVERGENCES DONT LES DROITES
                        //PRESENTENT DES INTERSECTIONS AVEC LES COURS
                        //ET/OU L'oscillateur RWI.
                        //P5=1 NE LES ACCEPTE PAS.
                        //----------------------------------------------

                        //Initialisations
                        //
                        INDIC=OSCIL_RWI.OSC_RWI
                        MINI=1000


                        SI RANGHISTO=FINHISTO-P4 //On explore jusqu'à P4 périodes avant la FINHISTO
                        ALORS

                        //Chercher un 1er creux (CI1) et sa date (DATE_CI1) sur l'indicateur
                        //
                        I=0
                        CI1=MINI
                        TANTQUE I<=P1 FAIRE
                        SI INDIC(I+1)<0
                        ALORS
                        SI INDIC(I+2)>INDIC(I+1) ET INDIC(I+1)<INDIC(I)
                        ALORS
                        SI INDIC(I+1)<=CI1
                        ALORS
                        CI1=INDIC(I+1)
                        DATE_CI1=FINHISTO-P4-(I+1)
                        D1=I+1
                        FINSI
                        FINSI
                        FINSI
                        I=I+1
                        FINTANTQUE

                        SI D1=0
                        ALORS
                        AFFICHER "=========PAS DE 1ER CREUX RECENT SUR L'oscillateur RWI========"
                        AFFICHER "================MODIFIEZ P1 ET/OU P4 =================="
                        STOP
                        FINSI

                        //Chercher un 1er creux (CC1) et sa date (DATE_CC1)
                        //sur les cours avec une tolérance de P3 périodes avant
                        //le 1er creux trouvé sur l'indicateur
                        //
                        CC1=BAS(FINHISTO-P4-DATE_CI1)
                        DATE_CC1=DATE_CI1
                        K=FINHISTO-P4-DATE_CI1+1
                        TANTQUE K<=FINHISTO-P4-DATE_CI1+P3 FAIRE
                        SI BAS(K)<=CC1
                        ALORS
                        CC1=BAS(K)
                        DATE_CC1=FINHISTO-K-P4
                        FINSI
                        K=K+1
                        FINTANTQUE

                        //Chercher un 2ème creux (CI2) plus ancien
                        //et sa date (DATE_CI2) sur l'indicateur
                        //
                        J=D1+1
                        CI2=CI1
                        TANTQUE J<=P2+D1 FAIRE
                        SI INDIC(J+2)>INDIC(J+1) ET INDIC(J+1)<INDIC(J)
                        ALORS
                        SI INDIC(J+1)<=CI2
                        ALORS
                        CI2=INDIC(J+1)
                        DATE_CI2=FINHISTO-P4-(J+1)
                        D2=1
                        FINSI
                        FINSI

                        SI D2=1 //CI2 est un creux possible sur l'indicateur
                        ALORS

                        SI P5=1 //On veut que la droite CI1--CI2 reste sous l'indicateur
                        ALORS
                        PENTE_I=(CI1-CI2)/(DATE_CI1-DATE_CI2)
                        POUR (FINHISTO-P4-DATE_CI2+1) COURS
                        POINT_I(0)= PENTE_I*(RANGPOUR-1)+CI2
                        SI POINT_I>INDIC
                        ALORS
                        N=1
                        BREAK
                        FINSI
                        SI RANGPOUR>(DATE_CI1-DATE_CI2) ALORS BREAK
                        FINPOUR
                        FINSI

                        SI N=0 //Droite de divergence CI1--CI2 correcte
                        ALORS
                        //Chercher le 2ème creux (CC2) et sa date (DATE_CC2)
                        //sur les cours avec une tolérance de P3 périodes
                        //avant le 2ème creux sur l'indicateur
                        //
                        CC2=BAS(FINHISTO-P4-DATE_CI2)
                        DATE_CC2=DATE_CI2
                        K=FINHISTO-P4-DATE_CI2+1
                        TANTQUE K<FINHISTO-P4-DATE_CI2+P3 FAIRE
                        SI BAS(K)<=CC2
                        ALORS
                        CC2=BAS(K)
                        DATE_CC2=FINHISTO-K-P4
                        FINSI
                        K=K+1
                        FINTANTQUE

                        SI CC2>=CC1 //CC2 est un creux possible sur les cours
                        ALORS

                        SI P5=1 //On veut que la droite CC1--CC2 reste sous les cours
                        ALORS
                        PENTE_C=(CC1-CC2)/(DATE_CC1-DATE_CC2)
                        POUR (FINHISTO-P4-DATE_CC2+1) COURS
                        POINT_C(0)=PENTE_C*(RANGPOUR-1)+CC2
                        SI POINT_C>BAS
                        ALORS
                        M=1
                        BREAK
                        FINSI
                        SI RANGPOUR>(DATE_CC1-DATE_CC2) ALORS BREAK
                        FINPOUR
                        FINSI

                        SI M=0 //Droite de divergence CC1--CC2 correcte
                        ALORS
                        J=P2+D1+1
                        SINON
                        D2=0
                        FINSI
                        SINON
                        D2=0
                        FINSI
                        SINON
                        D2=0
                        FINSI
                        FINSI
                        N=0
                        M=0
                        J=J+1
                        FINTANTQUE

                        SI D1<>0 ET D2=0 OU CC2=0
                        ALORS
                        AFFICHER "============PAS DE DIVERGENCE POTENTIELLE============="
                        AFFICHER "======AVEC LES VALEURS ACTUELLES DES PARAMETRES======="
                        AFFICHER "=MAIS IL Y A UN 1ER CREUX SUR L'oscillateur RWI ET LES COURS="
                        AFFICHER "==============MODIFIEZ EVENTUELLEMENT P2=============="
                        STOP
                        FINSI

                        //Déterminer les points des segments de la divergence potentielle trouvée
                        //s'ils peuvent être tracés sur l'indicateur et sur les cours
                        //
                        SI DATE_CC1-DATE_CC2<2 //La valeur 2 peut être modifiée
                        ALORS
                        AFFICHER "=============DIVERGENCE POTENTIELLE============"
                        AFFICHER "==========TROP PETITE POUR ETRE TRACEE========="
                        AFFICHER "===========MODIFIEZ EVENTUELLEMENT P4=========="
                        SINON
                        PENTE_I=(CI1-CI2)/(DATE_CI1-DATE_CI2)
                        POUR (FINHISTO-P4-DATE_CI2+1) COURS
                        SEG_P_I(0)=PENTE_I*(RANGPOUR-1)+CI2
                        SI RANGPOUR>(DATE_CI1-DATE_CI2) ALORS BREAK
                        FINPOUR

                        PENTE_C=(CC1-CC2)/(DATE_CC1-DATE_CC2)
                        POUR (FINHISTO-P4-DATE_CC2+1) COURS
                        SEG_P_C(0)=PENTE_C*(RANGPOUR-1)+CC2
                        SI RANGPOUR>(DATE_CC1-DATE_CC2) ALORS BREAK
                        FINPOUR
                        FINSI

                        FINSI

                        Fenêtre Propriétés
                        <center><img src='http://images.pro-at.com/200512/b/fenetrepos.gif' alt='' /></center>

                        Commentaire


                        • Et pour terminer le <font color="blue">module statistique </font id="blue">permettant de détecter les divergences sur l'oscillateur RWI :

                          La fenêtre propriétés pour les "Divergences négatives"
                          <center><img src='http://images.pro-at.com/200512/b/fenetreneg1.gif' alt='' /></center>
                          Le programme :
                          //STATISTIQUE DE VALIDATION/CONFIRMATION
                          //DES DIVERGENCES NEGATIVES POTENTIELLES
                          //DETECTEES PAR LE PROGRAMME : DIV_NEG_RWI
                          //V1.0 du 11/12/2005
                          //


                          Le programme statisq

                          //--------------------------------------------------------------
                          //PARAMETRES A DEFINIR CI-DESSOUS
                          //
                          //EI : SEUIL RELATIF MINI DES ECARTS ENTRE SOMMETS SUR L'oscillateur RWI
                          //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_MFI".
                          //
                          //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_MFI"
                          N=150

                          POUR N COURS

                          //RECUPERER LA VALEUR L'oscillateur RWI AU SOMMET LE PLUS RECENT
                          //
                          SI DIV_NEG_RWI.SEG_N_I(1)<>0 ET DIV_NEG_RWI.SEG_N_I=0
                          ALORS
                          S1_INDIC=DIV_NEG_RWI.SEG_N_I(1)
                          <font color="red"><s>MACD_S1=DIV_NEG_RWI.INDIC(1)</s></font id="red">
                          <font color="blue">RWI_S1=DIV_NEG_RWI.INDIC(1)</font id="blue">
                          FINSI

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

                          //RECUPERER LA VALEUR L'oscillateur RWI AU SOMMET LE PLUS ANCIEN
                          //
                          SI DIV_NEG_RWI.SEG_N_I(1)=0 ET DIV_NEG_RWI.SEG_N_I<>0
                          ALORS
                          S2_INDIC=DIV_NEG_RWI.SEG_N_I
                          FINSI

                          //RECUPERER LA VALEUR DU COURS AU SOMMET LE PLUS ANCIEN
                          //
                          SI DIV_NEG_RWI.SEG_N_C(1)=0 ET DIV_NEG_RWI.SEG_N_C<>0
                          ALORS
                          S2_COURS=DIV_NEG_RWI.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 LE " & DATEHISTO$ & " 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 LE " & DATEHISTO$ & " SUR :"
                          VARSELECT = 1
                          BREAK
                          FINSI
                          FINSI
                          FINSI
                          FINPOUR

                          SI VARSELECT=1
                          ALORS
                          SELECTION
                          FINSI


                          La fenêtre propriétés pour les "Divergences positives"
                          <center><img src='http://images.pro-at.com/200512/b/fenetrepos1.gif' alt='' /></center>
                          Le programme :
                          //STATISTIQUE DE VALIDATION/CONFIRMATION
                          //DES DIVERGENCES POSITIVES POTENTIELLES
                          //DETECTEES PAR LE PROGRAMME : DIV_POS_RWI
                          //V1.0 du 11/12/2005
                          //

                          //--------------------------------------------------------------
                          //PARAMETRES A DEFINIR CI-DESSOUS
                          //
                          //EI : SEUIL RELATIF MINI DES ECARTS ENTRE CREUX SUR L'oscillateur RWI
                          //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_MFI".
                          //
                          //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=2
                          //Attention, la valeur suivante doit être >= à la somme des paramètres
                          //P1,P2,P4 du programme indicateur "DIV_POS_RWI"
                          N=300

                          POUR N COURS

                          //RECUPERER LA VALEUR de L'oscillateur RWI AU CREUX LE PLUS RECENT
                          //
                          SI DIV_POS_RWI.SEG_P_I(1)<>0 ET DIV_POS_RWI.SEG_P_I=0
                          ALORS
                          C1_INDIC=DIV_POS_RWI.SEG_P_I(1)
                          <font color="red"><s>REPULSE_C1=DIV_POS_RWI.INDIC(1)</s></font id="red">
                          <font color="blue">RWI_C1=DIV_POS_RWI.INDIC(1)</font id="blue">
                          FINSI

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

                          //RECUPERER LA VALEUR de L'oscillateur RWI AU CREUX LE PLUS ANCIEN
                          //
                          SI DIV_POS_RWI.SEG_P_I(1)=0 ET DIV_POS_RWI.SEG_P_I<>0
                          ALORS
                          C2_INDIC=DIV_POS_RWI.SEG_P_I
                          FINSI

                          //RECUPERER LA VALEUR DU COURS AU CREUX LE PLUS ANCIEN
                          //
                          SI DIV_POS_RWI.SEG_P_C(1)=0 ET DIV_POS_RWI.SEG_P_C<>0
                          ALORS
                          C2_COURS=DIV_POS_RWI.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 LE " & DATEHISTO$ & " 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 LE " & DATEHISTO$ & " SUR :"
                          VARSELECT = 1
                          BREAK
                          FINSI
                          FINSI
                          FINSI

                          FINPOUR

                          SI VARSELECT=1
                          ALORS
                          SELECTION
                          FINSI


                          Tous ces programmes sont une copie modifiée des prog de divergences que Smallcaps a mis au point ...sur d'autres oscillateurs.
                          FOKI

                          Commentaire


                          • <font color="red"><font size="5">Au Secours</font id="size5"></font id="red">

                            Je connais à peu près ien le logiciel Graph AT Pro Mais j'esssaie depuis 4 Jours de faire telecharger les cours des DEVISES
                            EUro US Yen US EUro Yen et meme d'autres devises mais meme les 2 premières je n'arrive pas à telcharger JE VAIS SUR bOURSO Mais pas moyen Qqun va t il sur AbcBourse Yahoo dites moi
                            J'ai fait aussi dans telecharg sur bourso devises ou listes Peut etre que je ne mets pas bien le format ??Texte Excel ?? Libre

                            Une bonneame charitable pourrait elle m'aider et medire comment proceder Pourquoi pas MLog ????

                            Merci pour votre aide

                            Commentaire


                            • Bonjour Gilda56,

                              Si tu importes manuellement les devises par abcbourse, tu ne disposes que de :
                              EUR CHF code ISIN : CH0002748082,
                              EUR GBP code ISIN : GB0003024162
                              EUR USD code ISIN : QS0010040911
                              EUR JPY code ISIN : QS0010041018
                              Ce sont bien les codes que t'a donnés Kiki27 dans un autre post.
                              Il faut bien sûr que tu crées préalablement chaque valeur avec son nom et son code ISIN. Peu importe le nom que tu choisiras puisque l'importation s'effectue en cochant "Séparateur" dans la fenêtre "Importation des cours" :
                              <center><img src='http://images.pro-at.com/200512/b/abcbourse1.gif' alt='' /></center>
                              et en vérifiant bien que tu as le format du fichier source donc sans libellé conforme à :
                              <center><img src='http://images.pro-at.com/200512/b/abcbourse2.gif' alt='' /></center>


                              Avec Boursorama maintenant, on a bien un fichier qui contient des devises quand on télécharge par le menu "Téléchargement" puis "International" puis en cochant le bouton "Devises" :
                              <center><img src='http://images.pro-at.com/200512/b/reglages_bourso.gif' alt='' /></center>
                              Voici ce fichier pour le 15/12/2005 :
                              <center><img src='http://images.pro-at.com/200512/b/fichier_bourso.gif' alt='' /></center>

                              Deux constatations :
                              1- les noms des valeurs et leurs codes comportent un "/" avec lequel GrapheAT est fâché lorsqu'on essaie de créer des valeurs qui les intègrent....
                              2- on dispose de davantage de devises que sur abcbourse, ok...

                              Du fait que les noms ne conviennent pas à GrapheAT, tu es tenu d'y créer tes devises en utilisant des noms et des codes sans "/".
                              Pour ce qui me concerne, voici mon panneau d'importantion des cours avec les noms et les codes que j'ai :
                              <center><img src='http://images.pro-at.com/200512/b/panneau_importation_des_cours.gif' alt='' /></center>
                              Je corrige donc le fichier texte journalier reçu de Boursorama de telle sorte que les noms et les codes soient bien conformes à ceux que j'ai dans ma base :
                              <center><img src='http://images.pro-at.com/200512/b/fichier_corrig%e9.gif' alt='' /></center>
                              et après sauvegarde de ce fichier transformé, j'importe les cours dans GrapheAT.
                              Lourd!!!...

                              Il doit bien exister aussi une possiblité de téléchargement et importation des devises, je ne la connais pas.

                              Cordialement.

                              Commentaire


                              • Bonsoir,
                                Sur le site www.gerryco.com/tech/darvas.html j'ai trouvé une description et un synoptyque concernant les boites de Darvas " DARVAS BOXES".
                                J'ai tenté une programmation sur GraphAT mais il y a trop de SI imbriqués dans ces boites aussi je sollicite nos experts en programmation
                                A+

                                Commentaire

                                Chargement...
                                X