Annonce
Réduire
Aucune annonce.
Ads
Réduire
Analyse Quant? Je me Gauss!
Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • #76
    OS = Operating System = Système d'Exploitation

    DOS signifiait Disk Operating System

    Commentaire


    • #77
      Bonjour Daniela , Ramon ,

      Vous n 'êtes très probablement pas sans connaître l'indicateur TRIX ,je l'évoquais hier sur l'autre file ;

      je trouve , avec une période 8 , les résultats remarquables ( il est préconisé de 9 à 12 ) ; surtout en cas de sinusoïde ( tendances bien marquées )

      ce n'est pas le plus en avance aux retournements mais il vient confirmer cela et son lissage assure le suivi de la tendance :


      "Il permet de filtrer les mouvements insignifiants au sein d’une tendance, selon la sensibilité choisie au moyen de la sélection du nombre de périodes. "


      Trix = (EMA3 (cours de clôture du jour) - EMA3 (cours de clôture du jour précédent)) / EMA3 (cours de clôture du jour précédent)




      exemple sur l'action suivante :




      Cliquez sur l'image pour la voir en taille réelle   Nom : 		téléchargement.png  Affichages :	1  Taille :		56,9 Ko  ID : 			1868844

      Commentaire


      • #78
        ex de trade raté ou neutre,en contre tendance ,dans le cas d'un signal suivi d' absence de rebond franc ( trix + Fi/T ) :

        Cliquez sur l'image pour la voir en taille réelle   Nom : 		téléchargement.png  Affichages :	1  Taille :		76,2 Ko  ID : 			1868850

        Commentaire


        • #79
          Un premier résultat incomplet sur TFish à partir des cours journaliers du CAC40, premier semestre de 2016. Mais je n’ai pas encore d’évaluation.
          Cliquez sur l'image pour la voir en taille réelle 

Nom : 		TFish_2.jpg 
Affichages :	55 
Taille :		89,5 Ko 
ID : 			1868964

          Le graph du haut représente les prix médians journaliers (noir) price = (H + L)/2 (on aperçois parfois un peu de gris, ce sont les cours de clôture). En magenta, les canaux construits avec les plus hauts et les plus bas sur 10 périodes.

          Le graph en dessous représente les mêmes canaux aplatis et recalés pour avoir une largeur de 2. La courbe noire, ce sont les prix normalisés et la bleue son lissage par une EMA avec une période de 5.

          Le dernier graph représente la transformation de Fisher (en noire le résultat brut et en rouge le résultat avec un lissage par une EMA avec une période de 3). La courbe lissée (rouge) est la grandeur de sortie du programme d’Ehlers. Je n’ai pas représenté le trigger (fish décalée d’un pas) mais j’ai utilisé son croisement avec fish pour les décisions de prises de positions (il y en a 23 sur le semestre).

          Le lignes verticales sur les trois graphs correspondent aux prises de position. vert : on clôture la précédente et on achète un long, rouge : on clôture la précédente et on achète un short !

          A première vue, c’est difficile de savoir si on peut en tirer quelque chose. Pour cela il faut en faire une évaluation quantitative (points engrangés, drawdown, etc.) sur une durée plus longue. J’ai un problème actuellement en données journalière mais ça viendra.
          J’ai suivi (sauf erreur) l’algo d’Ehlers. Pour l’EMA de prix normalisé, où il a utilisé deux périodes (3 ou 5), j’ai choisi 5 pour réduire le nombre de positions.
          Caramba! Encore raté ...

          Commentaire


          • #80
            Ramon merci pour cette présentation je regarde en détail ce soir ou demain, mais d'ores et déjà : le prix médian c'est pour lisser le calcul ?

            À terme je pense à f. Kalman+Fi/T+Trix comme config.
            À condition de réussir à me faire coder le filtre et déjà de trouver le bon.

            Commentaire


            • #81
              Phg, non je ne sais pas, j'ai vu que Ehlers l'utilisait souvent alors que d'autres trouve le cours de cloture plus représentatif.

              Pour Kalman, j'ai vu ce que tu avais affiché un moment mais en le parcourant rapidement je n'ai pas pu savoir ce que ça pouvait faire. Quand au Kalman sur le site hk-lisse, la sortie Kalman est une simple EMA bricolée pour réduire son retard, comme Ehlers aime bien le faire. Je n'ai jamais vu qu'il avait fait un filtre de kalman, mais tout est possible ...
              Tiens un mémoire de HEC Montreal sur l'utilisation du filtre de Kalman en finance

              Caramba! Encore raté ...

              Commentaire


              • #82
                Merci beaucoup,
                Suis pas chez moi, je regarderai.
                Ce que j'ai mis sur Kalman c'est quoi alors ?
                (graphe+lien 27 02. 10h07)
                À +

                Commentaire


                • #83
                  faut que je retourne en prépa

                  Commentaire


                  • #84
                    Envoyé par Yoff Voir le message
                    faut que je retourne en prépa
                    Salut Yoff,
                    Pas compris.

                    Commentaire


                    • #85
                      pour refaire des maths ,

                      Commentaire


                      • #86
                        Envoyé par Yoff Voir le message
                        pour refaire des maths ,
                        Ah OK.
                        Moi : jamais rien compris.

                        Commentaire


                        • #87
                          Re-bonsoir Ramon ,

                          je le remets ; pour moi c'est du mandarin

                          mon frère est là semaine prochaine ; je lui montrerai ;


                          tiré de ce site ; https://mt5indicator.com/fr/kalmanfilter/


                          est-ce que quelqu'un sait si le code est le même pour toutes les plateformes ?





                          //+------------------------------------------------------------------+
                          //| KalmanFilter.mq5 |
                          //| MQL5 code: Copyright © 2010, Nikolay Kositsin |
                          //| Khabarovsk, farria@mail.redcom.ru |
                          //+------------------------------------------------------------------+
                          #property copyright "Copyright © 2010, Nikolay Kositsin"
                          #property link "farria@mail.redcom.ru"
                          //---- indicator version
                          #property version "1.00"
                          //---- drawing the indicator in the main window
                          #property indicator_chart_window
                          //---- number of indicator buffers
                          #property indicator_buffers 2
                          //---- only one plot is used
                          #property indicator_plots 1
                          //+-----------------------------------+
                          //| Indicator drawing parameters |
                          //+-----------------------------------+
                          //---- drawing the indicator as a line
                          #property indicator_type1 DRAW_COLOR_LINE
                          //---- the following colors are used for the indicator line
                          #property indicator_color1 Orange,Turquoise
                          //---- the indicator line is a continuous curve
                          #property indicator_style1 STYLE_SOLID
                          //---- indicator line width is equal to 2
                          #property indicator_width1 2
                          //---- displaying the indicator label
                          #property indicator_label1 "KalmanFilter"
                          //+-----------------------------------+
                          //| Declaration of enumerations |
                          //+-----------------------------------+
                          enum Applied_price_ // Type of constant
                          {
                          PRICE_CLOSE_ = 1, // Close
                          PRICE_OPEN_, // Open
                          PRICE_HIGH_, // High
                          PRICE_LOW_, // Low
                          PRICE_MEDIAN_, // Median Price (HL/2)
                          PRICE_TYPICAL_, // Typical Price (HLC/3)
                          PRICE_WEIGHTED_, // Weighted Close (HLCC/4)
                          PRICE_SIMPLE, // Simple Price (OC/2)
                          PRICE_QUARTER_, // Quarted Price (HLOC/4)
                          PRICE_TRENDFOLLOW0_, // TrendFollow_1 Price
                          PRICE_TRENDFOLLOW1_ // TrendFollow_2 Price
                          };
                          //+------------------------------------------------------------------+
                          //| |
                          //+------------------------------------------------------------------+
                          enum Signal_mode
                          {
                          Trend, // by trend
                          Kalman // by Kalman
                          };
                          //+-----------------------------------+
                          //| Indicator input parameters |
                          //+-----------------------------------+
                          input double K=1.0; // Smoothing ratio
                          input Applied_price_ IPC=PRICE_WEIGHTED; // Applied price
                          input Signal_mode Signal=Kalman; // Line color change method
                          input int Shift=0; // Horizontal shift of the indicator in bars
                          input int PriceShift=0; // Vertical shift of the indicator in points
                          //+-----------------------------------+
                          //---- indicator buffers
                          double IndBuffer[],ColorBuffer[];
                          //----
                          double dPriceShift,Sqrt100,K100;
                          //---- declaration of the integer variables for the start of data calculation
                          int min_rates_total;
                          //+------------------------------------------------------------------+
                          //| KalmanFilter indicator initialization function |
                          //+------------------------------------------------------------------+
                          void OnInit()
                          {
                          //---- initialization of variables of the start of data calculation
                          min_rates_total=2;

                          //---- initialization of variables
                          Sqrt100=MathSqrt(K/100);
                          K100=K/100.0;

                          //---- initialization of the vertical shift
                          dPriceShift=_Point*PriceShift;

                          //---- set IndBuffer[] dynamic array as an indicator buffer
                          SetIndexBuffer(0,IndBuffer,INDICATOR_DATA);
                          //---- shifting the indicator horizontally by Shift
                          PlotIndexSetInteger(0,PLOT_SHIFT,Shift);
                          //---- performing the shift of the beginning of the indicator drawing
                          PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,31);
                          //---- setting the indicator values that won't be visible on a chart
                          PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
                          //---- initializations of a variable for the indicator short name

                          //---- set ColorBuffer[] dynamic array as an indicator buffer
                          SetIndexBuffer(1,ColorBuffer,INDICATOR_COLOR_INDEX);
                          //---- performing the shift of the beginning of the indicator drawing
                          PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total);

                          string shortname;
                          StringConcatenate(shortname,"KalmanFilter(",DoubleToString(K,2),")");
                          //--- creation of the name to be displayed in a separate sub-window and in a tooltip
                          IndicatorSetString(INDICATOR_SHORTNAME,shortname);
                          //--- determination of accuracy of displaying the indicator values
                          IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
                          //---- initialization end
                          }
                          //+------------------------------------------------------------------+
                          //| KalmanFilter iteration function |
                          //+------------------------------------------------------------------+
                          int OnCalculate(const int rates_total, // number of bars in history at the current tick
                          const int prev_calculated,// number of bars calculated at previous call
                          const datetime &time[],
                          const double &open[],
                          const double& high[], // price array of maximums of price for the indicator calculation
                          const double& low[], // price array of minimums of price for the indicator calculation
                          const double &close[],
                          const long &tick_volume[],
                          const long &volume[],
                          const int &spread[])
                          {
                          //---- checking the number of bars to be enough for the calculation
                          if(rates_total<min_rates_total)return(0);

                          //---- declaration of local variables
                          int first,bar;
                          double Velocity,Distance,Error;
                          static double Velocity_;
                          //----

                          if(prev_calculated>rates_total || prev_calculated<=0) // checking for the first start of the indicator calculation
                          {
                          first=1; // starting index for calculation of all bars
                          //---- initialization of coefficients
                          IndBuffer[first-1]=PriceSeries(IPC,first-1,open,low,high,close);
                          Velocity_=0.0;
                          }
                          else first=prev_calculated-1; // starting index for calculation of new bars

                          //---- restore values of the variables
                          Velocity=Velocity_;

                          //---- main indicator calculation loop
                          for(bar=first; bar<rates_total; bar++)
                          {
                          //---- store values of the variables before running at the current bar
                          if(rates_total!=prev_calculated && bar==rates_total-1)
                          {
                          Velocity_=Velocity;
                          }

                          Distance=PriceSeries(IPC,bar,open,low,high,close)-IndBuffer[bar-1];
                          Error=IndBuffer[bar-1]+Distance*Sqrt100;
                          Velocity+=Distance*K100;
                          IndBuffer[bar]=Error+Velocity+dPriceShift;

                          if(Signal==Trend)
                          {
                          if(IndBuffer[bar-1]>IndBuffer[bar]) ColorBuffer[bar]=0;
                          else ColorBuffer[bar]=1;
                          }
                          else
                          {
                          if(Velocity>0) ColorBuffer[bar]=1;
                          else ColorBuffer[bar]=0;
                          }
                          }
                          //----
                          return(rates_total);
                          }
                          //+------------------------------------------------------------------+
                          //| Getting values of a price series |
                          //+------------------------------------------------------------------+
                          double PriceSeries(uint applied_price,// Applied price
                          uint bar, // Index of shift relative to the current bar for a specified number of periods back or forward
                          const double &Open[],
                          const double &Low[],
                          const double &High[],
                          const double &Close[])
                          {
                          //----
                          switch(applied_price)
                          {
                          //---- price constants from the ENUM_APPLIED_PRICE enumeration
                          case PRICE_CLOSE: return(Close[bar]);
                          case PRICE_OPEN: return(Open [bar]);
                          case PRICE_HIGH: return(High [bar]);
                          case PRICE_LOW: return(Low[bar]);
                          case PRICE_MEDIAN: return((High[bar]+Low[bar])/2.0);
                          case PRICE_TYPICAL: return((Close[bar]+High[bar]+Low[bar])/3.0);
                          case PRICE_WEIGHTED: return((2*Close[bar]+High[bar]+Low[bar])/4.0);

                          //----
                          case 8: return((Open[bar] + Close[bar])/2.0);
                          case 9: return((Open[bar] + Close[bar] + High[bar] + Low[bar])/4.0);
                          //----
                          case 10:
                          {
                          if(Close[bar]>Open[bar])return(High[bar]);
                          else
                          {
                          if(Close[bar]<Open[bar])
                          return(Low[bar]);
                          else return(Close[bar]);
                          }
                          }
                          //----
                          case 11:
                          {
                          if(Close[bar]>Open[bar])return((High[bar]+Close[bar])/2.0);
                          else
                          {
                          if(Close[bar]<Open[bar])
                          return((Low[bar]+Close[bar])/2.0);
                          else return(Close[bar]);
                          }
                          break;
                          }
                          //----
                          default: return(Close[bar]);
                          }
                          //----
                          //return(0);
                          }
                          //+------------------------------------------------------------------+


                          Commentaire


                          • #88
                            je pense que c'est pas pour proréaltime

                            Commentaire


                            • #89
                              C'est pour mt4

                              Commentaire


                              • #90
                                Envoyé par Ramon Voir le message
                                Un premier résultat incomplet sur TFish à partir des cours journaliers du CAC40, premier semestre de 2016. Mais je n’ai pas encore d’évaluation.
                                Cliquez sur l'image pour la voir en taille réelle 

Nom : 		TFish_2.jpg 
Affichages :	55 
Taille :		89,5 Ko 
ID : 			1868964

                                Le graph du haut représente les prix médians journaliers (noir) price = (H + L)/2 (on aperçois parfois un peu de gris, ce sont les cours de clôture). En magenta, les canaux construits avec les plus hauts et les plus bas sur 10 périodes.

                                Le graph en dessous représente les mêmes canaux aplatis et recalés pour avoir une largeur de 2. La courbe noire, ce sont les prix normalisés et la bleue son lissage par une EMA avec une période de 5.

                                Le dernier graph représente la transformation de Fisher (en noire le résultat brut et en rouge le résultat avec un lissage par une EMA avec une période de 3). La courbe lissée (rouge) est la grandeur de sortie du programme d’Ehlers. Je n’ai pas représenté le trigger (fish décalée d’un pas) mais j’ai utilisé son croisement avec fish pour les décisions de prises de positions (il y en a 23 sur le semestre).

                                Le lignes verticales sur les trois graphs correspondent aux prises de position. vert : on clôture la précédente et on achète un long, rouge : on clôture la précédente et on achète un short !

                                A première vue, c’est difficile de savoir si on peut en tirer quelque chose. Pour cela il faut en faire une évaluation quantitative (points engrangés, drawdown, etc.) sur une durée plus longue. J’ai un problème actuellement en données journalière mais ça viendra.
                                J’ai suivi (sauf erreur) l’algo d’Ehlers. Pour l’EMA de prix normalisé, où il a utilisé deux périodes (3 ou 5), j’ai choisi 5 pour réduire le nombre de positions.
                                Pas facile en effet ; les pourcentages pris ne sont pas très importants , beaucoup moins que sur une action ;

                                en swing indiciel sur tracker lev 2 (admettons LVC + BX4 ) une solution est peut être de changer d'UT ; utiliser jour et hebdo ; jongler entre les deux pour affiner ou lisser les prises de décisions ; en fait être majoritairement sur l'UT hebdo mais aller préciser les signaux d'achat en journalier ,signaux qui arrivent trop tard en hebdo ; l'idée est bien sûr de garder les positions ,longues ou courtes , sans tenir compte ou presque des sous vagues , pour jouer de plus vastes mouvements ; même principe sur action ;

                                Commentaire

                                Chargement...
                                X