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

  • <img src='http://www.pro-at.com/style/images/icones/Super11.gif' border='0' alt='' title='' align='middle' />

    Commentaire


    • <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' /> <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' /> <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' />

      Super Daniel, bonnes fêtes à tous

      Fabrice

      Commentaire


      • <font color='#0000FF'></font>Bonsoir à tous,


        Je suis heureux de vous transmettre le premier email reçu ce soir de MLOG qui propose des solutions à 2 propositions d'évolutions que nous lui avons soumises ce midi :

        <em><font color='#0000FF'>========================================
        Expéditeur : "mlog" <mlog@graphat.com>
        22/12/08 18:28

        Bonjour,

        Je vous répond au moins sur un point pour l'instant.

        Il est facile de modifier le programme de trading system pour qu'il ne fasse que des achats ou que des ventes au lieu du stop and reverse actuel.
        Je joint le source du programme modifié. Un nouveau paramètre P4 permet de choisir le mode voulu pour les achats/ventes. Il n'y a que 4 ou 5 lignes
        de rajoutées par rapport à la règle d'origine (c'est celles où le paramètre
        P4 est utilisé).

        Pour la fenêtre d'affichage des règles si il n'y a pas de bouton pour l'appeler, il y a un raccourci clavier CTRL+F qui évite d'aller dans le menu.

        Cordialement.
        ========================================</font></em>
        Il s'agit pour le premier point du mail de la proposition 2-9 qui est arrivée en tête de nos demandes :

        <strong>2-9 (50 pts)
        Créer un programme de backtest pour des prises de position autres que celles de type "stop and reverse". </strong>

        La solution proposée par MLOG consiste en une nouvelle version du programme "Trad Gains 2" qui est une règle indicateur dérivée de "Trading system 2".
        Un nouveau paramètre P4 apparaît qui permet de sélectionner le mode de prise de position que l'on souhaite :

        Si P4 = 0 on est en Stop & Reverse
        Si P4 = 1 on est positionné à l'achat seulement
        Si P4 = -1 on est positionné à la vente seulement

        Le nouveau programme est le suivant :

        //============================================================
        //Trad Gains 2
        //
        // Calcul de la courbe des gains du Signal d'Achat/Vente
        // et des statistiques sur les opérations dans la fenêtre d'Affichage (rapport de backtest)

        // P1 = 0 : Opération au cours de Cloture du jour du signal
        // P1 = 1 : Opération au cours d'Ouverture du jour suivant le signal
        // P1 = 2 : Opération au cours moyen du jour suivant le signal

        // P2 : Stop de protection à -P2% de perte
        // P2 = 0 : Pas de stop de protection

        // P3 = 1 : Affichage de chaque opération d'Achat/Vente dans la fenêtre d'affichage des règles

        // P4 = 0 : Stop & Reverse
        // P4 = 1 : Positionné qu'à l'achat
        // P4 = -1 : Positionné qu'à la vente


        GAINS = GAINS(1)
        GAINSREEL = GAINSREEL(1)
        BUYANDHOLD = BUYANDHOLD(1)
        Pos = Pos(1)
        SIGNALSTOP=SIGNAL

        // Affichage des statistiques sur les opérations

        Si RANGHISTO=FINHISTO Alors
        Afficher ""
        Afficher "======== Statistiques sur les opérations d'Achat/Vente ========"
        Afficher ""
        Afficher "Nombre d'opérations : " & Trade &
        " Gagnantes : " & Win & " (" & ARRONDI(Win/Trade*100,2) & "%)" &
        " Perdantes : " & Lost & " (" & ARRONDI(Lost/Trade*100,2) & "%)"
        Afficher ""
        Afficher "Total des gains : " & ARRONDI(GAINSREEL,2) &
        " Des opérations gagnantes : " & ARRONDI(SomWin,2) &
        " Des opérations perdantes : " & ARRONDI(SomLost,2)
        Afficher "Moyenne des gains : " & ARRONDI(GAINSREEL/Trade,2) &
        " Des opérations gagnantes : " & ARRONDI(SomWin/Win,2) &
        " Des opérations perdantes : " & ARRONDI(SomLost/Lost,2)
        Afficher ""
        Afficher "Meilleur opération gagnante : " & ARRONDI(MaxWin,2) &
        " Plus petite opération gagnante : " & ARRONDI(MinWin,2)
        Afficher "Plus grande opération perdante : " & ARRONDI(MaxLost,2) &
        " Plus petite opération perdante : " & ARRONDI(MinLost,2)
        Afficher ""
        Afficher "Maximum d'opérations gagnantes consécutives : " & ARRONDI(MaxNbConsWin,2) &
        " Gain total : " & ARRONDI(MaxConsWin,2)
        Afficher "Maximum d'opérations perdantes consécutives : " & ARRONDI(MaxNbConsLost,2) &
        " Perte totale : " & ARRONDI(MaxConsLost,2)
        Afficher ""
        Afficher "Perte maximale atteinte en intraday (MaxIntraDrawDown) : " & ARRONDI(MaxIntraDrawDown,2) &
        " (le " & DateMaxIntra$ & ")"
        Afficher ""
        Afficher "===================================================="
        Afficher ""
        FinSi

        // Calcul cours de l'opération

        Si P1=0 Alors
        CoursOper = Cloture // Opération au cours de Cloture si P1=0
        Sinon
        Si RANGHISTO=FINHISTO Alors Stop
        Si P1=1 Alors CoursOper = Ouverture(-1) // Opération au cours d'ouverture du jour suivant si P1=1
        Sinon CoursOper = (Haut(-1) + Bas(-1) + Cloture(-1)) / 3 // Opération au cours moyen du jour suivant si P1=2
        FinSi

        Si RANGHISTO = 1 Alors // Début historique
        Cours0 = CoursOper
        Pos = SIGNALSTOP
        Si Pos=-1 ET P4=1 Alors Pos=0
        Si Pos=1 ET P4=-1 Alors Pos=0
        CoursDebOper = CoursOper
        DateDebOper$ = DateHisto$
        Stop
        FinSi

        // Stop de protection

        Si P2>0 ET Pos<>0 ET SIGNALSTOP=0 Alors
        Si Pos>0 Alors Perte = (CoursDebOper-Bas)/CoursDebOper
        Sinon Perte = (Haut-CoursDebOper)/CoursDebOper
        Si Perte >= P2% Alors
        SIGNALSTOP = -2 * Pos
        CoursOper = CoursDebOper * (1-Pos*P2%)
        Si CoursOper>Haut Alors CoursOper = Haut
        Si CoursOper<Bas Alors CoursOper = Bas
        Finsi
        FinSi

        // Calcul de la courbe des Gains

        PlusValue = (CoursOper - CoursDebOper) * Pos
        GAINS = GAINSREEL + PlusValue
        BUYANDHOLD = CoursOper - Cours0


        // Calcul du MaxIntraDrawDown

        Si Pos<>0 Alors
        Si Pos>0 Alors Perte = Bas-CoursDebOper
        Sinon Perte = CoursDebOper-Haut
        Si Perte>0 Alors Perte = 0
        PerteTotale = (GAINSREEL-MaxGains)+Perte
        Si PerteTotale<MaxIntraDrawDown Alors
        MaxIntraDrawDown = PerteTotale
        DateMaxIntra$ = DateHisto$
        FinSi
        FinSi

        // Calcul des statistiques de fin d'opération

        Si Pos<>SIGNALSTOP ET SIGNALSTOP<>0 ET Pos<>0 Alors
        Trade = Trade+1
        Si GAINS>MaxGains Alors MaxGains = GAINS
        Si PlusValue>0 Alors
        Win = Win+1
        SomWin = SomWin+PlusValue
        Si Win=1 Alors MinWin = PlusValue
        Si PlusValue<MinWin Alors MinWin = PlusValue
        Si PlusValue>MaxWin Alors MaxWin = PlusValue
        ConsWin = ConsWin+PlusValue
        Si ConsWin>MaxConsWin Alors MaxConsWin = ConsWin
        NbConsWin = NbConsWin+1
        Si NbConsWin>MaxNbConsWin Alors MaxNbConsWin = NbConsWin
        ConsLost = 0
        NbConsLost = 0
        Sinon
        Lost = Lost+1
        SomLost = SomLost+PlusValue
        Si Lost=1 Alors MinLost = PlusValue
        Si PlusValue>MinLost Alors MinLost = PlusValue
        Si PlusValue<MaxLost Alors MaxLost = PlusValue
        ConsLost = ConsLost+PlusValue
        Si ConsLost<MaxConsLost Alors MaxConsLost = ConsLost
        NbConsLost = NbConsLost+1
        Si NbConsLost>MaxNbConsLost Alors MaxNbConsLost = NbConsLost
        ConsWin = 0
        NbConsWin = 0
        FinSi
        FinSi

        // Affichage des opérations si P3=1

        Si P3=1 ET Pos<>SIGNALSTOP ET SIGNALSTOP<>0 ET Pos<>0 Alors
        Si Pos>0 Alors Operation$="ACHAT" Sinon Operation$="VENTE"
        DateFinOper$ = DateHisto$
        Afficher Operation$ & " " &
        DateDebOper$ & " " & CTXT$(CoursDebOper,2) & " " &
        DateFinOper$ & " " & CTXT$(CoursOper,2) & " " &
        CTXT$((CoursOper-CoursDebOper)/CoursDebOper*Pos*100,2) & "%"
        FinSi


        // Début d'une nouvelle opération (ou seulement fin de la précédente)

        Si Pos<>SIGNALSTOP ET SIGNALSTOP<>0 Alors
        GAINSREEL = GAINS
        Si SIGNALSTOP=-1 ET P4=1 Alors SIGNALSTOP=-2
        Si SIGNALSTOP=1 ET P4=-1 Alors SIGNALSTOP=2
        Si ABSOLU(SIGNALSTOP)=1 ALors // Début d'une nouvelle opération
        Pos = SIGNALSTOP
        CoursDebOper = CoursOper
        DateDebOper$ = DateHisto$
        Sinon
        Pos = 0 // Arrêt de l'opération à cause d'un stop loss
        FinSi
        Finsi

        //============================================================


        L'autre demande concerne le point 1-2 (arrivé en 7ème position dans notre enquête). Il concerne l'accès à la fenêtre d'affichage :

        <strong>1-2 (35 pts)
        Fenêtre d'affichage de GAP (GrapheAT Pro pour faire rapide) accessible par bouton (actuellement il faut faire Règle/Fenêtre d’affichage…).</strong>

        SOLUTION :

        Le raccourci <strong>CTRL+F</strong> comme indiqué dans le mail de ce soir permet donc d'afficher cette fenêtre sans passer par le menu "Règle/Fenêtre d'affichage...".
        Ce raccourci est déjà cité dans l'aide (paragraphe : Backtest avec la règle Trading System 2) à laquelle on accède lorsqu'on se trouve dans la fenêtre "Règle Indicateur". Nous ne l'avions pas pris en compte...


        Voilà, le processus d'évolution est lancé, nous ne pouvons que nous en réjouir.
        Je remercie très sincèrement Monsieur Métois de MLOG pour sa grande réactivité.

        Cordialement.

        Commentaire


        • Bonnes fêtes à toutes et à tous.
          Merci Daniel <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' />

          Commentaire


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

            Commentaire


            • Bonnes fêtes de fin d'année,et encore bravo pour le travail founit par tous les participants de cette rubrique et plus particulierement a Smallcaps90 et Max-Min

              Commentaire


              • bonnes fêtes de fin d'année à tous et merci pour tout
                cordialement
                Sphinx

                Commentaire


                • bonnes fêtes de fin d'année à vous tous et un grand merci aux animateurs et programmateurs de la file GAP.

                  Fredifly.

                  Commentaire


                  • Si on écrit :

                    M1=Moyenne(Cloture,7)
                    M1=Moyenne(M1,7)

                    M2=Moyenne(Moyenne(Cloture,7),7)

                    Est ce que M1 donne le même résultat que M2 ?

                    Commentaire


                    • <blockquote><strong>Citation de : maxakool</strong> <em>(au 26-12-2008 09:20:50)</em>

                      Si on écrit :

                      M1=Moyenne(Cloture,7)
                      M1=Moyenne(M1,7)

                      M2=Moyenne(Moyenne(Cloture,7),7)

                      Est ce que M1 donne le même résultat que M2 ?

                      </blockquote><hr />

                      Bonjour maxakool et bienvenue sur la file,

                      Comme tu as écris ton programme M1 n'est pas egal à M2.

                      Voici ce que donne ton programme:

                      <center><img src='http://images.pro-at.com/forums-bourse/1208/20110_261154.gif' alt='' /></center>

                      Comme tu peux le constater la valeur M1 diffère de M2.

                      Tu as 2 calcul différent pour une même valeur qui est en l'occurence M1. C'est à dire que M1 est égal à ça : M1=Moyenne(Cloture,7) et aussi à ça : M1=Moyenne(M1,7)

                      Il faut donc que tu dissocie le nom attribue à ces 2 calculs. Par exemple M11 pour le premier et M1 pour le second calcul.

                      Par ailleurs le premier calcul (M11=Moyenne(Cloture,7)) sert de base au calcul de la seconde condition (M1=Moyenne(M1,7))

                      Si tu ne veux pas que le premier calcul apparaisse sur le graph il faut que historise le calcul en mettant (0) juste après M11.

                      Voici en d'autre terme ce que donnerais ton programme pour que M1 soit égal à M2:

                      M11(0)=Moyenne(Cloture,7)
                      M1=Moyenne(M11(0),7)

                      M2=Moyenne(Moyenne(Cloture,7),7)

                      Et voici les valeurs obtenues :

                      <center><img src='http://images.pro-at.com/forums-bourse/1208/20110_261155.gif' alt='' /></center>

                      Comme tu peux le constater M1 est egal à M2 dans ces conditions.

                      J'espère avoir répondu à ta question.

                      Fredifly.

                      Commentaire


                      • Il manque cruellement une variable dite "composite" dans GraphAT Pro.

                        Il s'agit d'une variable (indice) qui serait créée à l'aide du rapport entre 2 autres variables. Exemple:

                        - l'indice CRB divisé par l'indice T-Bond
                        - Résultat; création d'un nouvel indice "CRB/T-Bond".

                        Ceci existe depuis longtemps dans Metastock. On peut faire de même aussi lorsqu'on utilise StockCharts.

                        J'avais envoyé un email à Mlog à ce sujet, mais il n'a pas du en tenir compte !!

                        Commentaire


                        • Bonjour,

                          De retour après avoir bu un (tout petit) bouillon avec l'éclatement de la bulle informatique <img src='http://www.pro-at.com/style/images/icones/icon_smile_blackeye.gif' border='0' alt='' title='' align='middle' />, j'avais cependant entre-temps continué à lire le forum et à télécharger les cours sur GAT...

                          Avant de me lancer à nouveau, j'affûte mon GAT et je viens de me rendre compte d'un petit problème, qui pourrait affecter l'exactitude de la programmation s'il était avéré.

                          Pour certaines valeurs,(pas toutes), les variations indiquées par GAT ne correspondent pas aux variations indiquées par Les Echos ou ABCbourse...

                          Exemples :

                          Alcatel
                          29/12 __0,66% GAT ____0,39% Les Echos
                          24/12 __0,66% GAT ____0,86% Les Echos
                          23/12 __0,67% GAT ____0,47% Les Echos
                          22/12 __-4,46% GAT ____-4,40% Les Echos

                          Accor:
                          29/12 __0,63% GAT ____0,61% Les Echos
                          24/12 __-2,42% GAT ____-2,40% Les Echos
                          23/12 __1,15% GAT ____1,13% Les Echos
                          22/12 __-3,28% GAT ____-3,26% Les Echos

                          Pour Accor, on peut supposer qu'il s'agit d'un problème d'arrondi, quoique... Mais pas pour Alcatel...

                          Je n'ai mis ici que deux exemples, j'en avais trouvé d'autres au hasard de mes recherches, mais ne les avais pas noté <img src='http://www.pro-at.com/style/images/icones/icon_smile_blush.gif' border='0' alt='' title='' align='middle' />.

                          Est-ce mon soft qui chahute ou avez-vous le même constat.
                          Et dans ce cas, que faut-il en penser ??? <img src='http://www.pro-at.com/style/images/icones/icon_smile_question.gif' border='0' alt='' title='' align='middle' />

                          En attendant, <u>je tire mon chapeau à SmallCaps toujours présent et actif, fantastique</u> !

                          Et bonnes fêtes de fin d'année...

                          AlainS

                          Commentaire


                          • <blockquote><strong>Citation de : Tobago</strong> <em>(au 30-12-2008 11:46:20)</em>
                            Accor:
                            29/12 __0,63% GAT ____0,61% Les Echos
                            24/12 __-2,42% GAT ____-2,40% Les Echos
                            23/12 __1,15% GAT ____1,13% Les Echos
                            22/12 __-3,28% GAT ____-3,26% Les Echos

                            Pour Accor, on peut supposer qu'il s'agit d'un problème d'arrondi, quoique... Mais pas pour Alcatel...

                            </blockquote><hr />

                            Bonjour Tobago
                            Pour Accor (et autres valeurs), il s'agit peut-être du passage à trois décimales non pris en compte dans GraphAT

                            Pour Alcatel, j'ai la même erreur.

                            Commentaire


                            • Bonjour Tobago et Bambi

                              j'ai eu le cas, lors de programmation de ce type calcul, cela vient des conversions de textes en nombre flottant*100, puis en entier, puis en texte avec virgule(/100).
                              cela donne ce type de formule :

                              FloatToStr((int((StrToFloat(netV3.text)+StrToFloat(netV2.text)+StrToFloat(netV.text)-StrToFloat(netV4.text))*100 )/100))
                              (celle-ci est bonne) <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />, il existe aussi d'autres solutions, moi j'aime bien cette façon.
                              Smallcapps nous dira si je suis dans le vrai.

                              Suivant comment c'est programmé ou une parenthèse mal placée et effectivement il peut en sortir le bug que vous avez trouvé.
                              De notre côté nous ne pouvons pas faire de modifs seul MLOG doit revoir sa formule.
                              Bon réveillon à tous.
                              Max imum de gains et Min imum de pertes

                              Commentaire


                              • Bonjour les ami(e)s,


                                Tout d'abord je vous présente mes meilleurs voeux pour 2009 : santé, amour, prospérité...

                                Pour ce qui concerne ensuite le pb détecté par Tobago, comme le souligne très logiquement max_et_min seul MLOG peut modifier ses sources pour supprimer ce bug évidemment.
                                Comme la méthode proposée par max_et_min pour effectuer la conversion "texte ---> flottant" puis la conversion inverse fonctionne correctement (en tenant compte de la présence du "%" et de la virgule), on peut souhaiter bientôt voir le bug corrigé puisque cela est vraisemblablement le cas, MLOG nous lit...

                                Enfin, je n'ai pas de nouvelles fraîches au sujet des améliorations que nous lui avons demandées récemment. A suivre donc.

                                Cordialement.

                                Commentaire

                                Chargement...
                                X