Annonce

Réduire
Aucune annonce.

Ads

Réduire

[Graphe AT PRo : programmation]

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • bonjour,
    J'utilise graphat pro pour le cac et metatrader pour le forex, sur ce dernier j'ai trouvé ce programme forexofftrend et je voudrais le tranferer sur graphat.
    Quelqu'un serait-il capable de faire le transfert
    Voici le pgm de metatrader:
    Merci d'avance.
    //+------------------------------------------------------------------+
    //| ForexOFFTrend.mq4 |
    //| SilverTrend rewritten by CrazyChart |
    //| <a href='/ref.php?uri=http%3A%2F%2Fviac.ru%2F' target="_blank">http://viac.ru/</a> |
    //+------------------------------------------------------------------+
    #property copyright "SilverTrend rewritten by CrazyChart"
    #property link "<a href='/ref.php?uri=http%3A%2F%2Fviac.ru%2F' target="_blank">http://viac.ru/</a> "

    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 Red
    #property indicator_color2 Blue
    //---- input parameters
    extern int CountBars = 300;
    extern int SSP = 7;
    extern double Kmin = 1.6;
    extern double Kmax = 50.6; //24 21.6 21.6
    //---- buffers
    double ExtMapBuffer1[];
    double ExtMapBuffer2[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    SetIndexStyle(0, DRAW_LINE, 0, 2);
    SetIndexBuffer(0, ExtMapBuffer1);
    SetIndexStyle(1, DRAW_LINE, 0, 2);
    SetIndexBuffer(1, ExtMapBuffer2);
    //----
    if(CountBars >= Bars)
    CountBars = Bars;
    SetIndexDrawBegin(0, Bars - CountBars + SSP);
    SetIndexDrawBegin(1, Bars - CountBars + SSP);
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custor indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()
    {
    int i, i2,loopbegin,counted_bars=IndicatorCounted();
    double SsMax, SsMin, K, val1, val2, smin, smax, price;
    //----
    if(Bars <= SSP + 1)
    return(0);
    //----
    if(counted_bars < SSP + 1)
    {
    for(i = 1; i <= SSP; i++)
    ExtMapBuffer1[CountBars-i] = 0.0;
    for(i = 1; i <= SSP; i++)
    ExtMapBuffer2[CountBars-i] = 0.0;
    }
    for(i = CountBars - SSP; i >= 0; i--)
    {
    SsMax = High[Highest(NULL, 0, MODE_HIGH, SSP, i - SSP + 1)];
    SsMin = Low[Lowest(NULL, 0, MODE_LOW, SSP, i - SSP + 1)];
    smin = SsMin - (SsMax - SsMin)*Kmin / 100;
    smax = SsMax - (SsMax - SsMin)*Kmax / 100;
    ExtMapBuffer1[i-SSP+6] = smax;
    ExtMapBuffer2[i-SSP-1] = smax;
    val1 = ExtMapBuffer1[0];
    val2 = ExtMapBuffer2[0];
    //----
    if(val1 > val2)
    Comment("ïîêóïêà buy ", val1);
    //----
    if(val1 < val2)
    Comment("ïðîäàæà sell ", val2);
    }
    //----
    return(0);
    }
    //+-----------------------------------------------------------------
    <center><a href='http://images.pro-at.com/forums-bourse/0507/4023_061158.gif' target='_blank' style='display:block; width:600px; border:2px dashed #888; padding:10px'><img src="http://images.pro-at.com/forums-bourse/0507/4023_061158.gif" alt='' width='600' height='450' /><em style='display:block; text-align: right'>Cliquez pour agrandir</em></a></center>

    Commentaire


    • Bonjour Bamal,

      Pourrais-tu poster un graphe daily, sous Metarader 4, de Renault (RNO) avec cette version du "Silver Trend" tracée sur les cours?
      Cela me permettra de vérifier si mes courbes sont identiques aux tiennes.
      De nombreuses variantes ont été proposées de cet indicateur, sur le forum "forex-TSD" entre autres...
      Cordialement.

      Commentaire


      • Bonjour smallcaps90,
        Pas possible metatrader ne fait que le forex.
        Par contre le chargement de l'euro se trouve soit en daily soit en intraday après une petite manipulation sur le format:
        <a href='/ref.php?uri=http%3A%2F%2Fwww.fin-rus.com%2Fanalysis%2Fexport%2F_eng_%2Fdefault.asp' target="_blank">http://www.fin-rus.com/analysis/export/_eng_/defau...</a>

        Commentaire


        • (pour graphat)

          Commentaire


          • Re Bamal,

            Poste l'EUR/USD (QS0010040911) en daily, si tu veux bien, dans Metatrader 4 avec le Silver Trend et les valeurs des paramètres du programme :

            CountBars = 300
            SSP = 7
            Kmin = 1.6
            Kmax = 50.6

            Ce sera plus simple pour moi.

            Commentaire


            • re smallcaps90,
              countbars=300
              ssp=7
              kmin=1.6
              kmax=50.6
              <center><a href='http://images.pro-at.com/forums-bourse/0507/4023_081011.gif' target='_blank' style='display:block; width:600px; border:2px dashed #888; padding:10px'><img src="http://images.pro-at.com/forums-bourse/0507/4023_081011.gif" alt='' width='600' height='450' /><em style='display:block; text-align: right'>Cliquez pour agrandir</em></a></center>

              Commentaire


              • Rebonjour Bamal,

                Voici une solution pour le Silver Trend (ce n'est qu'un proto pour l'instant).

                PROGRAMME :

                //============
                //Silver_Trend
                //============

                //le 08/05/2007
                //v0.1



                Si RangHisto>=FinHisto-P1
                Alors

                //Code de :
                //SsMax = High[Highest(NULL, 0, MODE_HIGH, SSP, i - SSP + 1)];
                //
                i=P2+1
                ssmax=Haut(i)
                TantQue i<= 2*P2-1 Faire
                Si Haut(i)>ssmax
                Alors
                ssmax=Haut(i)
                FinSi
                i=i+1
                FinTantQue

                //Code de :
                //SsMin = Low[Lowest(NULL, 0, MODE_LOW, SSP, i - SSP + 1)];
                //
                i=P2+1
                ssmin=Bas(i)
                TantQue i<= 2*P2-1 Faire
                Si Bas(i)<ssmin
                Alors
                ssmin=Bas(i)
                FinSi
                i=i+1
                FinTantQue

                smin=ssmin-(ssmax-ssmin)*P3/100
                smax=ssmax-(ssmax-ssmin)*P4/100
                Courbe1(2*(P2-1))=smax
                Courbe2(P2-2)=smax

                FinSi


                //Terminaisons
                //
                Si RangHisto>=FinHisto-P2-1
                Alors
                ssmax=MAX(Haut,P2)
                ssmin=Min(Bas,P2)
                smin=ssmin-(ssmax-ssmin)*P3/100
                smax=ssmax-(ssmax-ssmin)*P4/100
                Courbe1(P2-3)=smax
                Courbe2(-3)=smax
                FinSi

                Si RangHisto=FinHisto
                Alors
                lim=Courbe1(P2-3)
                Pour P2-2 Cours
                Courbe1=lim
                FinPour
                FinSi

                //Fin du code

                Par rapport à Metatrader, GrapheAT Pro ne nécessite la déclaration des variables, ni un certain nb d'autres choses...
                Par contre on ne dispose pas des instructions :
                High(Highest(.....)) et Low(Lowest(.....)), ce qui impose la présence des 2 boucles Tant Que
                La déclaration des "courbes" à tracer et de leurs caractéristiques se fait dans la fenêtre "Propriétés" de la règle.

                PROPRIETES :
                <center><img src='http://images.pro-at.com/forums-bourse/0507/3668_081622.png' alt='' /></center>

                J'obtiens le graphe suivant pour le dollar US :
                <center><img src='http://images.pro-at.com/forums-bourse/0507/3668_081625.png' alt='' /></center>

                Les courbes obtenues sont proches des tiennes...
                Néanmoins mon historique, téléchargé sur abcbourse, s'arrête au 04/05/07 et les barres que j'ai repèrées par les flèches brunes ci-dessous sont absentes ce qui peut expliquer les petiotes différences entre les courbes obtenues par les deux systèmes. Elles semblent correspondre aux samedis...
                <center><img src='http://images.pro-at.com/forums-bourse/0507/3668_081628.jpg' alt='' /></center>

                Cordialement.

                Commentaire


                • Merci,
                  Très beau travail smallcaps90,je l'ai chargé sur graphat et
                  il fonctionne très bien.
                  Je vais l'utiliser sur le cac dans l'avenir.




                  Commentaire


                  • Bonjour à tous , et félicitation pour tous ceux qui animent cette file pour faire progresser le logiciel Graphe AT Pro.
                    J’ai un problème que je n’arrive pas à résoudre .
                    Comment fait on pour tracer les lignes de seuils sur les indicateurs , et qu’elles y restent sur toutes les valeurs lorsque je les fais défiler.
                    Exemple :
                    RSI 30 et 70
                    CCI -100 et 100
                    STO 30 et 70
                    Bien sur on peut le faire manuellement mais il faut les tracer sur toutes les valeurs .bonjour le temps.
                    Normalement dans la programmation du RSI on devrait pouvoir le faire , c’est ce qui se fait dans tous les logiciels meme les très bas de gamme.
                    Si quelqu’un a la solution elle sera la bienvenue.
                    Merci à tous et bonne continuation.

                    Commentaire


                    • c'est bon je viens de trouver.

                      Commentaire


                      • Bonsoir ctangui,

                        Pour t'éviter de scanner tes groupes manuellement, je te propose 3 petites statistiques qui pourront faire le travail de détection que tu souhaites.
                        Il suffit que tu installes les programmes ci-dessous sous l'onglet qui t'intéresse dans la règle statistique : Jour, Semaine ou Mois.
                        J'ai utilisé 14 comme valeur de calcul des 3 indicateurs, ceci peut être être modifié bien sûr (Menus Options/Indicateurs).
                        J'ai choisi N=1 dans les exemples. Tu peux modifier cette valeur à loisir.


                        <strong>Pour le CCI(14).</strong>

                        Programme :

                        //=================================
                        //CROISEMENTS CCI/SEUILS PREDEFINIS
                        //=================================

                        //le 16/05/2007


                        //Définir les seuils
                        //
                        Seuil_Surachat=100
                        Seuil_Survente=-100

                        //Choisir nb périodes de scan
                        //
                        N=1

                        //Scanner le groupe
                        //
                        Pour N Cours

                        Si Croise(CCI,Seuil_Surachat)>0
                        Alors
                        Colonne1="CCI suracheté le " & DateHisto$
                        CCI_SurAchat=1
                        FinSi

                        Si Croise(CCI,Seuil_Survente)<0
                        Alors
                        Colonne1="CCI survendu le " & DateHisto$
                        CCI_SurVente=1
                        FinSi

                        FinPour

                        Si CCI_SurAchat=1 OU CCI_SurVente=1
                        Alors
                        Selection
                        FinSi


                        Fenêtre Propriétés :
                        <center><img src='http://images.pro-at.com/forums-bourse/0507/3668_161844.png' alt='' /></center>

                        Pour le groupe CAC SMALL90, en date de ce soir et N=1 :
                        Groupe : CAC SMALL90 Date : 16/05/2007
                        Franchissements de seuils prédéfinis de surachat et survente par le CCI

                        CCI suracheté le 16/05/2007 Exel industries a
                        CCI suracheté le 16/05/2007 Ims(int.metal ser)
                        CCI suracheté le 16/05/2007 Lectra systemes
                        CCI suracheté le 16/05/2007 Theolia
                        CCI suracheté le 16/05/2007 Wavecom
                        CCI survendu le 16/05/2007 A Novo
                        CCI survendu le 16/05/2007 Avanquest Software
                        CCI survendu le 16/05/2007 Avenir Telecom
                        CCI survendu le 16/05/2007 Damartex


                        On peut utiliser la même logique pour le RSi et le STOCH.

                        <strong>Pour le RSI(14).</strong>

                        Programme :

                        //=================================
                        //CROISEMENTS RSI/SEUILS PREDEFINIS
                        //=================================

                        //le 16/05/2007


                        //Définir les seuils
                        //
                        Seuil_Surachat=70
                        Seuil_Survente=30

                        //Choisir nb périodes de scan
                        //
                        N=1

                        //Scanner le groupe
                        //
                        Pour N Cours

                        Si Croise(RSI,Seuil_Surachat)>0
                        Alors
                        Colonne1="RSI suracheté le " & DateHisto$
                        RSI_SurAchat=1
                        FinSi

                        Si Croise(RSI,Seuil_Survente)<0
                        Alors
                        Colonne1="RSI survendu le " & DateHisto$
                        RSI_SurVente=1
                        FinSi

                        FinPour

                        Si RSI_SurAchat=1 OU RSI_SurVente=1
                        Alors
                        Selection
                        Finsi


                        Fenêtre Propriétés :
                        <center><img src='http://images.pro-at.com/forums-bourse/0507/3668_161848.png' alt='' /></center>

                        Pour le même groupe, on obtient :

                        Groupe : CAC SMALL90 Date : 16/05/2007
                        Franchissements de seuils prédéfinis de surachat et survente par le RSI

                        RSI suracheté le 16/05/2007 Flo (groupe)
                        RSI suracheté le 16/05/2007 Lectra systemes
                        RSI suracheté le 16/05/2007 Petit forestier
                        RSI suracheté le 16/05/2007 Vm materiaux


                        <strong>Pour le STOCH(14).</strong>

                        Programme :

                        //=================================
                        //CROISEMENTS STOCH/SEUILS PREDEFINIS
                        //=================================

                        //le 16/05/2007


                        //Définir les seuils
                        //
                        Seuil_Surachat=70
                        Seuil_Survente=30

                        //Choisir nb périodes de scan
                        //
                        N=1

                        //Scanner le groupe
                        //
                        Pour N Cours

                        Si Croise(STOCH,Seuil_Surachat)>0
                        Alors
                        Colonne1="STOCH suracheté le " & DateHisto$
                        STOCH_SurAchat=1
                        FinSi

                        Si Croise(STOCH,Seuil_Survente)<0
                        Alors
                        Colonne1="STOCH survendu le " & DateHisto$
                        STOCH_SurVente=1
                        FinSi

                        FinPour

                        Si STOCH_SurAchat=1 OU STOCH_SurVente=1
                        Alors
                        Selection
                        FinSi

                        Fenêtre Propriétés :
                        <center><img src='http://images.pro-at.com/forums-bourse/0507/3668_161850.png' alt='' /></center>

                        Résultats :

                        Groupe : CAC SMALL90 Date : 16/05/2007
                        Franchissements de seuils prédéfinis de surachat et survente par le STOCH

                        STOCH suracheté le 16/05/2007 Afone
                        STOCH suracheté le 16/05/2007 Lectra systemes
                        STOCH suracheté le 16/05/2007 Sam
                        STOCH survendu le 16/05/2007 Avanquest Software
                        STOCH survendu le 16/05/2007 Euro Disney
                        STOCH survendu le 16/05/2007 Penauille Polyservices


                        Cordialement.

                        Commentaire


                        • Merci beaucoup Smallcaps90, ces programmes vont me simplifier la tache, on ne peut pas réver mieux.
                          bonne journée.

                          Commentaire


                          • Bonjour
                            j'ai essayé de programmer l'ADA d'Alan Farley de la manière suivante:

                            // ADA Farley 20.05.07



                            TrueLow(0)=MinVal(Bas,Cloture(1))
                            TrueHigh(0)=MaxVal(Haut,Cloture(1))

                            // Calcul TrueLow(0)
                            Si Cloture(1)< Bas
                            Alors TrueLow(0)=Cloture(1)
                            Si Cloture(1)>= Bas
                            Alors TrueLow(0)=Bas

                            // Calcul TrueHigh(0)

                            Si Cloture(1)> Haut
                            Alors TrueHight(0)= Cloture(1)
                            Si Cloture(1)<=Haut
                            Alors TrueHight(0) =Haut

                            // LWAccDis (Larry Williams Accumulation Distribution)

                            Si Cloture> Cloture(1)
                            Alors LWAccdis(0)=Cloture-TrueLow
                            Si Cloture < Cloture(1)
                            Alors LWAccdis(0)=Cloture-TrueHight
                            Si Cloture =Cloture(1)
                            Alors LWAccdis(0)=0

                            // Différence LWACCDIS

                            F=LWAccdis-LWAccdis(1)

                            // Moyenne exponentielle F 14 Périodes

                            MEF =EXPOSUIV(MEF,F,P1)

                            // Lissage moyenne MEF 7 périodes

                            ADA=EXPOSUIV(ADA,MEF,P2)




                            Merci pour vos commentaires et observations.

                            Commentaire


                            • Bonjour Alexandre,


                              Dans son bouquin paru aux éditions Valor en 2005 : "Le maître swing trader", Alan Farley définit son "Accumulation-Distribution Accelerator" pages 302 à 304. C'est un oscillateur qui donne une idée de l'accélération des cours.
                              Il y existe de nombreuses solutions pour définir l'accélération et la vitesse d'évolution des cours, soit directement soit indirectement.
                              Alan Farley procède en utilisant le momentum d'un autre momentum. Le résultat global n'est autre qu'une sorte de dérivée seconde des cours. Le 1er momentum est analogue quant à lui à leur dérivée première, il est donc l'image de la vitesse des cours.
                              Le fait de calculer ce 1er momentum en introduisant, selon les cas, le TrueLow ou le TrueHigh ou encore l'expression : (cloture-cloture(1)) _qui est le vrai momentum 1 période des cours de clôture_, n'introduit qu'une toute petite différence par rapport au calcul qui utiliserait la seule expression (cloture-cloture(1)) .
                              Le 2ème momentum, le "Larry Williams Accumulation Distribution", est le momentum 1 période du précédent.
                              Contrairement à ce qu'affirme Alan Farley, le fait d'utiliser ensuite des moyennes exponentielles dans les calculs n'introduit aucune anticipation mais plutôt un lag.

                              Pour ce qui concerne ton programme, tu peux en supprimer les deux premières lignes puisque le TrueLow et le TrueHigh sont calculés dans les tests qui suivent. Sinon rien à dire sur la syntaxe.

                              On pourrait modifier le programme comme suit, pour montrer qu'un test "Si Alors Sinon" est équivalent à une expression binaire. Simple curiosité informatique...

                              Autre programme :

                              //============
                              //ADA_FARLEY_2
                              //============

                              //le 21/05/2007


                              //TrueLow et TrueHigh
                              //
                              TrueLow=Cloture(1)*(Cloture(1)<Bas)
                              + Bas*(Cloture(1)>=Bas)
                              TrueHigh=Cloture(1)*(Cloture(1)>Haut)
                              + Haut*(Cloture(1)<=Haut)

                              //AD de Larry Williams
                              //
                              LWAD(0)=(Cloture-TrueLow)*(Cloture>Cloture(1))
                              +(Cloture-TrueHigh)*(Cloture<Cloture(1))

                              //Moyenne exponentielle sur P1 périodes
                              //du momentum 1 période de LWAD
                              //
                              F=LWAD-LWAD(1)
                              MF=EXPOSUIV(MF,F,P1)

                              //ADA_FARLEY=Lissage exponentiel sur P2 périodes de MF
                              //
                              ADA_FARLEY=EXPOSUIV(ADA_FARLEY,MF,P2)

                              //Fin du code


                              Comment interprêter l'instruction :

                              TrueLow=Cloture(1)*(Cloture(1)<Bas)
                              + Bas*(Cloture(1)>=Bas)
                              ?

                              Si la Cloture(1) est < au Bas actuel, le test : (Cloture(1)<Bas) est vrai et vaut donc 1 par définition. L'autre partie de l'expression vaut 0 puisque le test (Cloture(1)>=Bas) est faux et vaut donc 0.
                              Ainsi TrueLow = Cloture(1)*1 + Bas*0 = Bas.
                              Si tel n'est pas le cas le test : (Cloture(1)<Bas) est faux et vaut donc 0 par définition alors que l'autre test : (Cloture(1)>=Bas) est vrai et vaut 1 . Ainsi TrueLow = 0+Bas =Bas qui est la valeur associée à ce 2ème test.
                              Pour que cela fonctionne bien il faut évidemment que les deux tests soient rigoureusement exclusifs.
                              La même méthode a été utilisée pour calculer le LWAD.
                              Cette manière de faire peut parfois simplifier les écritures...

                              Pour ce qui concerne l'emploi de l'oscillateur, A. Farley recommande de l'employer entre autres avec des S/R et des droites de tendance dont on peut chercher des points de cassure avec l'oscillateur lui-même pour détecter les points de retournements des cours.
                              Je le cite : "N'exigez pas la perfection avec les droites de tendance de l'ADA. Cet outil brut fonctionne mieux quand les swing traders autorisent de petites violations dans les deux directions".
                              Vous en pensez ce que vous voulez....

                              A titre d'exemple, le graphe daily de Bnp Paribas comporte les deux versions de l'ADA, la tienne et la mienne, rigoureusement identiques en termes de tracés.
                              On y trouve aussi deux autres solutions pour avoir une idée de la vitesse et de l'accélération des cours dont "Hull_Pics_Creux" dont nous avons déjà parlé plus haut sur le forum (courbe bleue = vitesse des cours de clôture, courbe rouge= accélération) et dont le tracé est reproduit sur les cours avec une moyenne de Hull(7) qui est censée suivre au plus près leur évolution et dont les flèches montrent à quels moments la concavité de la Hull change d'orientation. Ce qui peut donner des indications sur des points possibles d'interventions.
                              L'histogramme colorié de "Vitesse_acc" visualise l'accélération des cours de clôture et la courbe bleue donne une idée (pas toujours très bonne d'ailleurs) de la vitesse de ces même cours de clôture.

                              On constate une assez grand similitude entre les courbes d'accélération des indicateurs.

                              J'ai tracé sur l'oscillateur "ADA_FARLEY_1" deux droites de tendances avec leurs cassures par l'oscillateur qui seraient selon A. Farley des points d'entrée (E) et sortie (S) possibles.
                              Hull_Pics_creux donnait une anticipation de S par la flèche bleue montante qui se situe 5 périodes avant ce signal S et une anticipation de E par la flèche rouge descendante qui précède E de 4 périodes.

                              <center><img src='http://images.pro-at.com/forums-bourse/0507/3668_211522.png' alt='' /></center>

                              On peut trouver un exemple du même type page 306 du bouquin.

                              On devrait aussi pouvoir procéder à l'aide des divergences indic/cours, comme avec tout oscillateur...Idem pour les extremas de l'oscillateur.

                              Cordialement.

                              Commentaire


                              • Bonsoir Smallcaps90
                                Je te remercie pour ta relecture et tes précisions. En effet, je remarque l'ADA est en retard pour signaler les changements de tendance et les points d'entrée et de sortie. L'auteur en a d'ailleurs certainement conscience puisqu'il souligne qu'il s'agit d'un outil brut...

                                On a peut être intérêt à ces outils ensemble et à rechercher des divergences ADA-Prix, ces situations pouvant être profitables.

                                j'apprends beaucoup en te lisant.
                                <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' /> Merci.



                                Commentaire

                                Chargement...
                                X