Annonce
Réduire
Aucune annonce.
Ads
Réduire
Entre-Aide WHS FutureStation Nanotrader
Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Excellent. Merci beaucoup et bon week end a toi aussi.

    Commentaire


    • <strong><font color='#FF0000'>ACCELERER LES CALCULS SOUS EXPRESS</font>;</strong>

      Bonjour,

      La profondeur des historiques de cours sous EXPRESS rend les calculs très longs, inutilement, et souvent ne permet pas de réaliser des calculs complexes ou indicateurs personnalisés performants.

      <strong><em>Je vous propose une solution "standard" <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' />et assez simple qui permet de faire des calculs sur une période de temps "réduites.</em></strong> Vous pouvez choisir par exemple de calculer vos indicateurs ou historiques de prix sur les 200 ou 500 périodes les plus récentes.

      Ci-dessous un exemple pour le calcul de la moyenne mobile exponentielle sur les 500 derniers cours. Cet exemple est transposable facilement a d'autres indicateurs personnalisée (<strong><font color='#FF0000'>bien sur, il existe peut être une solution encore plus simple, que je ne connais pas encore</font></strong> <img src='http://www.pro-at.com/style/images/icones/icon_smile_question.gif' border='0' alt='' title='' align='middle' />):

      //-----------------------
      Express EMA_PERIODE_REDUITE

      //-----------------------
      vars
      series EMA;
      numeric i;
      numeric factor(0);
      input $period_EMA(1, 100, 10);
      input $period_TEST(1, 1000, 500);

      //-----------------------
      calculation
      EMA = void;
      factor = 2 / ($period_EMA + 1);

      If IsFinalBar() then //ne pas oublier
      for i = $period_TEST downto 0
      begin
      if i = $period_TEST then //we need one lookback entry
      EMA<em> = close<em>;
      else
      EMA<em> = factor * close<em> + (1 - factor) * EMA[i+1];
      end

      interpretation
      begin
      end

      plot (EMA, green, 2);

      Commentaire


      • Bonjour,

        J'ai tenté de représenter la valeur MEDIANE d'une série de CLOSE sur 5 periodes <strong><em> (par simplicité, les periodes de recherche de valeur médiane sont d'une durée numérique impaire </em></strong>; ici $period_median est toujours une valeur impaire).

        Le programme ci dessous ne donne pas encore les bonnes réponses sous Express (WHS FS Nano) mais je pense être proche de la solution.

        Auriez vous l’amabilité de bien vouloir m'aider a terminer ce programme et de le tester sur vos ordinateurs?

        <strong><u>Pour exemple, si sur 5 periodes</u>:</strong>
        close0 = 3010
        close1 = 3015
        close2 = 2090
        close3 = 3012
        close4 = 3020
        alors la valeur MEDIANE est 3012 en t=3 (2090, 3010, <strong><u>3012</u></strong>, 3015, 3020) puisqu'elle est au milieu de la série de prix triée par ordre croissant.

        Merci par avance pour votre aide.

        //--------------------------------------------

        <strong>Express VALEUR_MEDIANE</strong>

        vars
        series median_p;
        input $period_median(1, 15, 5);
        input $period_TEST(1, 1000, 200);
        numeric i, j, mid, inf, sup, egal, test;

        //-------------------------------
        calculation

        mid = ($period_median/2)+0.5;
        median_p = void;

        If IsFinalBar() then

        for i = $period_TEST downto 0 //je réduis le nombre de mes calculs sur une période de 200 prix pour accélérer mes calculs

        begin

        test = 0;
        sup = 0;
        inf = 0;
        egal = 0;

        for j = ($period_median-1) downto 0
        begin
        if test = 0 then
        begin
        if close[i+j] < close<em> then inf = inf+1;
        else
        if close[i+j] = close<em> then egal = egal+1;
        else
        if close[i+j] > close<em> then sup = sup+1; //d'autres proposent la formule sup=($period_median-inf-egal)
        end
        end

        if (sup + egal >= mid) then
        begin
        median_p<em> = Lowest(close, mid);
        test = 1;
        end

        if (inf + egal >= mid) then
        begin
        median_p<em> = Highest(close, mid);
        test = 1;
        end

        end

        Commentaire


        • j’étais parti dans le but de coder une Sine Weighted Moving Avearge ( SWMA )

          <a href='/ref.php?uri=http%3A%2F%2Fwww.linnsoft.com%2Ftour%2Ftechind%2FmovAvg.htm' target="_blank">http://www.linnsoft.com/tour/techind/movAvg.htm</a>


          <center><img src='http://www.linnsoft.com/tour/techind/images/IRT_MovAvgs.jpg' alt='' /></center>


          trop complexe , sous excel j'ai cette formule

          "=SIN($Z$4*180/6*PI()/180)*D9+SIN($Z$5*180/6*PI()/180)*D8+SIN($Z$6*180/6*PI()/180)*D7+SIN($Z$7*180/6*PI()/180)*D6+SIN($Z$8*180/6*PI()/180)*D5"

          ça demande des PI et des sin , angle exprimé en radian , ça semble beaucoup plus simple sous prorealtime , CF blog hk lisse

          Commentaire


          • Bonjour à tous
            En dehors des vidéos et manuels de WHS, quelqu'un aurait-il un bon livre à me conseiller pour apprendre le langage express ?
            Merci d'avance

            Commentaire


            • <blockquote><strong>Citation de : zatchetig</strong> <em>(au 02-07-2012 15:55:27)</em>

              Bonjour à tous
              En dehors des vidéos et manuels de WHS, quelqu'un aurait-il un bon livre à me conseiller pour apprendre le langage express ?
              Merci d'avance
              </blockquote><hr />
              Bonsoir,

              Il n'existe pas de littérature propre au langage Express.
              Sur le net et sur Amazone il en existe pas des livres, des articles et des exemples sur l'Easylanguage qui est très proche.
              Cela devrait donc faire l'affaire, il y a quelques adaptations à faire mais une fois que l'on a compris le fonctionnement c'est parfait!

              Bon courage

              Commentaire


              • <blockquote><strong>Citation de : StarGate1</strong> <em>(au 02-07-2012 18:44:18)</em>

                <blockquote><strong>Citation de : zatchetig</strong> <em>(au 02-07-2012 15:55:27)</em>

                Bonjour à tous
                En dehors des vidéos et manuels de WHS, quelqu'un aurait-il un bon livre à me conseiller pour apprendre le langage express ?
                Merci d'avance
                </blockquote><hr />
                Bonsoir,

                Il n'existe pas de littérature propre au langage Express.
                Sur le net et sur Amazone il en existe pas des livres, des articles et des exemples sur l'Easylanguage qui est très proche.
                Cela devrait donc faire l'affaire, il y a quelques adaptations à faire mais une fois que l'on a compris le fonctionnement c'est parfait!

                Bon courage
                </blockquote><hr />

                <p align='left'>Il n'existe pas de littérature propre au langage Express.
                Toutefois, sur le net et sur Amazone on trouve des livres, des articles et des exemples sur l'Easylanguage qui est très proche.
                Cela devrait donc faire l'affaire, il y a quelques adaptations à faire mais une fois que l'on a compris le fonctionnement c'est parfait!

                Bon courage</p>

                Commentaire


                • Merci stargate
                  Je vais regarder du côté de l'Easylanguage <img src='http://www.pro-at.com/style/images/icones/smileJap.gif' border='0' alt='' title='' align='middle' />

                  Commentaire


                  • tu peux peut être trouver des infos ici
                    <a href='/ref.php?uri=https%3A%2F%2Ftwitter.com%2Ftradestation' target="_blank">https://twitter.com/tradestation</a>
                    <a href='/ref.php?uri=https%3A%2F%2Ftwitter.com%2Fmulticharts' target="_blank">https://twitter.com/multicharts</a>

                    j'ai vu un livre tourner

                    Mais je trouve que les documents fournis par Futurestation , plus les vidéos par WHS c'est trés bien pour comprendre

                    Commentaire


                    • @ webmaster @ crock

                      possible si il vous plait de retirer l'italic , merci <img src='http://www.pro-at.com/style/images/icones/icon_smile.gif' border='0' alt='' title='' align='middle' />

                      Commentaire


                      • Commentaire


                        • <blockquote><strong>Citation de : camillo</strong> <em>(au 17-12-2011 11:18:04)</em>

                          Express Hull_Moving_Average_110714

                          vars

                          series

                          markeru, markerd,
                          Y, line1, line2, line3, temp;

                          numeric

                          i, j, sum, sum2, w, wsum,
                          u1, u1_sum, u1_sum2, u1_w(1), u1_wsum,
                          u2, u2_sum, u2_sum2, u2_w(1), u2_wsum,
                          u3, u3_sum, u3_sum2, u3_w(1), u3_wsum,
                          numerator,denominator;

                          input

                          $N(1,100,10);

                          calculation

                          //------------------------------
                          // Calculate fixed parameters
                          //------------------------------

                          if IsFirstBar() then
                          begin
                          u1 = round(($N/2),0);
                          u2 = $N;
                          u3 = round(SquareRoot($N),0);
                          u1_wsum = (u1 + 1) * u1 / 2;
                          u2_wsum = (u2 + 1) * u2 / 2;
                          u3_wsum = (u3 + 1) * u3 / 2;
                          end

                          // Conversion of the close in ticks = It is better to work with integer
                          // to avoid issues of errors due to rounding numbers

                          Y = round(close/TickSize(),0);

                          //---------------------------------
                          // First WMA
                          //---------------------------------

                          line1 = void;
                          if CurrentBarIndex() <= (u1-1) then
                          begin
                          u1_sum = u1_sum + Y;
                          u1_sum2 = u1_sum2 + Y * u1_w;
                          u1_w = u1_w + 1;
                          end
                          else
                          begin
                          u1_sum2 = u1_sum2 + Y * u1 - u1_sum;
                          u1_sum = u1_sum + Y - Y[u1];
                          line1 = (u1_sum2/u1_wsum)*TickSize();
                          end

                          //---------------------------------
                          // Second WMA
                          //---------------------------------

                          line2 = void;
                          if CurrentBarIndex() <= (u2-1) then
                          begin
                          u2_sum = u2_sum + Y;
                          u2_sum2 = u2_sum2 + y * u2_w;
                          u2_w = u2_w + 1;
                          end
                          else
                          begin
                          u2_sum2 = u2_sum2 + y * u2 - u2_sum;
                          u2_sum = u2_sum + y - y[u2];
                          line2 = (u2_sum2/u2_wsum)*TickSize();
                          end

                          //---------------------------------
                          // Calculate temp = 2*First WMA - Second WMA
                          //---------------------------------

                          temp = round((2*(u1_sum2/u1_wsum) - u2_sum2/u2_wsum),0);

                          //---------------------------------
                          // Third WMA
                          //---------------------------------

                          if IsFinalBar() then
                          begin
                          for i = FinalbarIndex() downto 0
                          begin
                          if i >= (FinalbarIndex()-(u2-1)) then
                          begin
                          line3<em> = void;
                          end
                          else
                          if i >= (FinalbarIndex()-u2-(u3-1)) then
                          begin
                          u3_sum = u3_sum + temp<em>;
                          u3_sum2 = u3_sum2 + temp<em> * u3_w;
                          u3_w = u3_w + 1;
                          line3<em> = void;
                          end
                          else
                          begin
                          u3_sum2 = u3_sum2 + temp<em> * u3 - u3_sum;
                          u3_sum = u3_sum + temp<em> - temp[i+u3];
                          line3<em> = (u3_sum2/u3_wsum)*TickSize();
                          end
                          end

                          //---------------------------------
                          // Create markeru, markerd
                          //--------------------------------

                          for i = FinalBarIndex() downto 0
                          begin
                          markeru<em> = void;
                          markerd<em> = void;
                          if line3<em> > line3[i+1] then
                          begin
                          markeru[i+1] = line3[i+1];
                          markeru<em> = line3<em>;
                          end
                          else
                          if line3<em> <> line3[i+1] then
                          begin
                          markerd[i+1] = line3[i+1];
                          markerd<em> = line3<em>;
                          end
                          else
                          if line3[i+1] > line3[i+2] then
                          begin
                          markeru[i+1] = line3[i+1];
                          markeru<em> = line3<em>;
                          end
                          else
                          begin
                          markerd[i+1] = line3[i+1];
                          markerd<em> = line3<em>;
                          end
                          end
                          end

                          interpretation
                          begin
                          end


                          plot(markeru, green, 2);
                          plot(markerd, red, 2);
                          //plot (line1,lightblue,2);
                          //plot (line2,blue,2);
                          //plot (line3,red,2);
                          //plot (temp,blue,2);
                          //plot (Y,blue,2);//@@@cs:1161303-3910376-819054_cs@@@
                          </blockquote><hr />

                          @ camillo

                          Bonjour Camillo je cherche à faire tourner la HMA , comme sur le graphique ci dessous , mais il y a un bug




                          Si un de vous a une idée


                          <center><img src='http://www.pro-at.com/forums-bourse/0712/40912_231042.png' alt='' /></center>

                          Commentaire


                          • <blockquote><strong>Citation de : JB</strong> <em>(au 23-07-2012 10:42:57)</em>

                            <blockquote><strong>Citation de : camillo</strong> <em>(au 17-12-2011 11:18:04)</em>

                            Express Hull_Moving_Average_110714

                            vars

                            series

                            markeru, markerd,
                            Y, line1, line2, line3, temp;

                            numeric

                            i, j, sum, sum2, w, wsum,
                            u1, u1_sum, u1_sum2, u1_w(1), u1_wsum,
                            u2, u2_sum, u2_sum2, u2_w(1), u2_wsum,
                            u3, u3_sum, u3_sum2, u3_w(1), u3_wsum,
                            numerator,denominator;

                            input

                            $N(1,100,10);

                            calculation

                            //------------------------------
                            // Calculate fixed parameters
                            //------------------------------

                            if IsFirstBar() then
                            begin
                            u1 = round(($N/2),0);
                            u2 = $N;
                            u3 = round(SquareRoot($N),0);
                            u1_wsum = (u1 + 1) * u1 / 2;
                            u2_wsum = (u2 + 1) * u2 / 2;
                            u3_wsum = (u3 + 1) * u3 / 2;
                            end

                            // Conversion of the close in ticks = It is better to work with integer
                            // to avoid issues of errors due to rounding numbers

                            Y = round(close/TickSize(),0);

                            //---------------------------------
                            // First WMA
                            //---------------------------------

                            line1 = void;
                            if CurrentBarIndex() <= (u1-1) then
                            begin
                            u1_sum = u1_sum + Y;
                            u1_sum2 = u1_sum2 + Y * u1_w;
                            u1_w = u1_w + 1;
                            end
                            else
                            begin
                            u1_sum2 = u1_sum2 + Y * u1 - u1_sum;
                            u1_sum = u1_sum + Y - Y[u1];
                            line1 = (u1_sum2/u1_wsum)*TickSize();
                            end

                            //---------------------------------
                            // Second WMA
                            //---------------------------------

                            line2 = void;
                            if CurrentBarIndex() <= (u2-1) then
                            begin
                            u2_sum = u2_sum + Y;
                            u2_sum2 = u2_sum2 + y * u2_w;
                            u2_w = u2_w + 1;
                            end
                            else
                            begin
                            u2_sum2 = u2_sum2 + y * u2 - u2_sum;
                            u2_sum = u2_sum + y - y[u2];
                            line2 = (u2_sum2/u2_wsum)*TickSize();
                            end

                            //---------------------------------
                            // Calculate temp = 2*First WMA - Second WMA
                            //---------------------------------

                            temp = round((2*(u1_sum2/u1_wsum) - u2_sum2/u2_wsum),0);

                            //---------------------------------
                            // Third WMA
                            //---------------------------------

                            if IsFinalBar() then
                            begin
                            for i = FinalbarIndex() downto 0
                            begin
                            if i >= (FinalbarIndex()-(u2-1)) then
                            begin
                            line3<em> = void;
                            end
                            else
                            if i >= (FinalbarIndex()-u2-(u3-1)) then
                            begin
                            u3_sum = u3_sum + temp<em>;
                            u3_sum2 = u3_sum2 + temp<em> * u3_w;
                            u3_w = u3_w + 1;
                            line3<em> = void;
                            end
                            else
                            begin
                            u3_sum2 = u3_sum2 + temp<em> * u3 - u3_sum;
                            u3_sum = u3_sum + temp<em> - temp[i+u3];
                            line3<em> = (u3_sum2/u3_wsum)*TickSize();
                            end
                            end

                            //---------------------------------
                            // Create markeru, markerd
                            //--------------------------------

                            for i = FinalBarIndex() downto 0
                            begin
                            markeru<em> = void;
                            markerd<em> = void;
                            if line3<em> > line3[i+1] then
                            begin
                            markeru[i+1] = line3[i+1];
                            markeru<em> = line3<em>;
                            end
                            else
                            if line3<em> <> line3[i+1] then
                            begin
                            markerd[i+1] = line3[i+1];
                            markerd<em> = line3<em>;
                            end
                            else
                            if line3[i+1] > line3[i+2] then
                            begin
                            markeru[i+1] = line3[i+1];
                            markeru<em> = line3<em>;
                            end
                            else
                            begin
                            markerd[i+1] = line3[i+1];
                            markerd<em> = line3<em>;
                            end
                            end
                            end

                            interpretation
                            begin
                            end


                            plot(markeru, green, 2);
                            plot(markerd, red, 2);
                            //plot (line1,lightblue,2);
                            //plot (line2,blue,2);
                            //plot (line3,red,2);
                            //plot (temp,blue,2);
                            //plot (Y,blue,2);//@@@cs:1161303-3910376-819054_cs@@@
                            </blockquote><hr />

                            @ camillo

                            Bonjour Camillo je cherche à faire tourner la HMA , comme sur le graphique ci dessous , mais il y a un bug




                            Si un de vous a une idée


                            <center><img src='http://www.pro-at.com/forums-bourse/0712/40912_231042.png' alt='' /></center>
                            </blockquote><hr />
                            @JB

                            <font color='#0000FF'><strong>Bonjour JB,

                            Juste une toute petite idée.

                            Je mettrais les couleurs entre guillemets dans les lignes "Plot".</strong></font>

                            <strong>interpretation
                            begin
                            end


                            plot(markeru, <font color='#FF0000'>"</font>green<font color='#FF0000'>"</font>, 2);
                            plot(markerd, <font color='#FF0000'>"</font>red<font color='#FF0000'>"</font>, 2);</strong>

                            Commentaire


                            • Bonjour,


                              Le programme installé est bien celui du message? parce que sur le graphe joint il y a deux indicateurs installés :
                              HMA-WHS(40) et HMA-WHSS (120)

                              Si ce sont les mêmes je conseille de donner le même nom au titre du programme et au nom du fichier sous lequel il est enregistré;sinon on ne s'y retrouve plus, surtout lorsque l'on fait appel à un autre indicateur dans un programme d'indicateur.

                              Ouvrir dans l'éditeur (double clique droit) le programme en défaut puis cliquer sur Appliquer et nous transmettre le message qui s'affiche, cela devrait aider à voir le problème

                              @ plus

                              Commentaire


                              • Bjr mpcdmu
                                Bjr Bernard

                                les "" ne semble pas interagir
                                je suis mauvais en programmation , et je ne trouve pas la fonction qui appellerait un second indicateur bien trop compliqué pour un petit gas comme moi



                                Trop fort (Don) Camillo , dommage qu'il soit en vacances j'aurais pu lui expliquer comment gagner 1M€ avec son indicateur <img src='http://www.pro-at.com/style/images/icones/icon_smile_clown.gif' border='0' alt='' title='' align='middle' />


                                <center><img src='http://www.pro-at.com/forums-bourse/0712/40912_241343.png' alt='' /></center>

                                va falloir sérieusement que je me mette à bosser ,( pas normal que je ne fasse pas d'effort )

                                A+ time to run , le soleil m'appelle , bons trades

                                Commentaire

                                Chargement...
                                X