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

  • je vais tester firstbar , finalbar et le code que tu m'as proposé

    bon week-end



    Commentaire


    • <blockquote><strong>Citation de : JB</strong> <em>(au 10-08-2012 18:10:03)</em>

      Dans un ancien programme j'ai tracé un indicateur en utilisant

      <center><img src='http://www.pro-at.com/forums-bourse/0812/40912_101817.jpg' alt='' /></center>

      esthétiquement j'aurai voulu une autre couleur que vert et une épaisseur plus épaisse de la largeur d'une bougie , une idée , où placer les couleurs rgb et le coef. dans le plotbars <img src='http://www.pro-at.com/style/images/icones/icon_smile_question.gif' border='0' alt='' title='' align='middle' />

      pour un simple macd j'utilise plotcandles(zero,macdhisto,macdhisto,zero);
      //plot(macd,lightblue,2);
      //plot(ema3,red,2);


      </blockquote><hr />
      Bonjour JB,

      Pour les " plotbars " on ne peux pas les mofifier.

      Il y a un an pratiquement j'avais posé la question à " WHS " pour savoir quand " Fipertec " envisageait d'intégrer l'instruction " plothistogram " dans la liste des mots réservés actifs.

      Je n'ai jamais eu de réponse.

      La seule solution envisageable, il me semble, serait que nous en fassions tous simultanément la demande à " Fipertec " pour que cela ait une chance d'aboutir.

      À ma connaissance la " FutureStation Nano " est la seule plateforme qui ne permette pas la représentation graphique sous forme d'histogramme, ce qui est surprenant pour une plateforme de ce niveau d'autant que l'instruction " plothistogram " fait parti des mots réservés prévus pour être intégré à celle-ci.

      Cordialement.
      <center><img src='http://www.pro-at.com/forums-bourse/0812/8017_110128.png' alt='' /></center>

      Commentaire


      • @ mpcdmu

        Bonjour Patric

        effectivement , mais je viens de comprendre autant pour moi

        en fait possible de tracer en barre
        en utilisant la fonction "plotcandles"
        tout simplement

        qui prendrait alors la couleur des bougies par défault



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

        bon week-end

        <center><img src='http://www.pro-at.com/forums-bourse/0812/40912_110806.jpg' alt='' /></center>

        Commentaire


        • je decouvre des nouveaux contrats dans le dossier Future CME
          FD CATT , LN HOG , LV CATT, MINI MID , PH HOIL , PH RBOB
          depuis la MAJ du 10 ?

          est ce que l'un d'entre-vous utilise les fonctions getarraysize , setarraysize ?



          Commentaire


          • <blockquote><strong>Citation de : Eric_Lefort</strong> <em>(au 11-10-2012 10:36:58)</em>

            Si intéressés, voici <strong><u>le code de la force relative pour la nano de WHS</u></strong>.

            <font color='#0000FF'>Express E_Indice_de_force
            // Ecrit par Eric Lefort pour Mogalef

            Vars

            Input $Longueur(1,50,10); // longueur sur laquelle est examinée la force
            input $Compare_Study(0,1,0); //Donner juste la Force (0) ou comparer les forces (1)

            series haut1,bas1,haut2,bas2;
            series Force,Force2; /Force du principal (CAC?) et force de l'indice comparé (DAX?)
            series null,CP,CP2,N,N2;
            series CLO(Study.close),HI(Study.high),LO(Study.low); // on va chercher les valeurs de l'indice que l'on va comparer au CAC


            Calculation

            CalculateAtEveryTick(false);

            // *********************** Calcul de la Force du CAC : ceci est le meilleur algorythme que j'ai trouvé.

            Haut1=Highest(h,$longueur);
            Bas1=Lowest(l,$longueur);
            N=(h+l+c)/3;
            //if IsFinalBar() then
            ExpMovingAverage(N,CP,3);

            Force=((cp-haut1[5]) / (haut1[5]-bas1[5])) + ((cp-bas1[5]) / (haut1[5]-bas1[5]))
            + ((cp-haut1[5+($longueur/2)]) / (haut1[5+($longueur/2)]-bas1[5+($longueur/2)])) + ((cp-bas1[5+($longueur/2)]) / (haut1[5+($longueur/2)]-bas1[5+($longueur/2)]))
            + ((cp-haut1[5+$longueur]) / (haut1[5+$longueur]-bas1[5+$longueur])) + ((cp-bas1[5+$longueur]) / (haut1[5+$longueur]-bas1[5+$longueur])) ;

            // ************************ Calcul de la force de l'indice comparé
            If $compare_study =1 then begin
            haut2=Highest(hi,$longueur);
            bas2=Lowest(lo,$longueur);
            N2=(hi+lo+clo)/3;
            ExpMovingAverage(N2,cp2,3);

            Force2=((cp2-haut2[5]) / (haut2[5]-bas2[5])) + ((cp2-bas2[5]) / (haut2[5]-bas2[5]))
            + ((cp2-haut2[5+($longueur/2)]) / (haut2[5+($longueur/2)]-bas2[5+($longueur/2)])) + ((cp2-bas2[5+($longueur/2)]) / (haut2[5+($longueur/2)]-bas2[5+($longueur/2)]))
            + ((cp2-haut2[5+$longueur]) / (haut2[5+$longueur]-bas2[5+$longueur])) + ((cp2-bas2[5+$longueur]) / (haut2[5+$longueur]-bas2[5+$longueur])) ;

            end
            // ************************
            if $compare_study>1 then begin
            haut2=Highest(hi,$longueur);
            bas2=Lowest(lo,$longueur);
            N2=(hi+lo+clo)/3;
            ExpMovingAverage(N2,cp2,3);

            Force2=((cp2-haut2[5]) / (haut2[5]-bas2[5])) + ((cp2-bas2[5]) / (haut2[5]-bas2[5]))
            + ((cp2-haut2[5+($longueur/2)]) / (haut2[5+($longueur/2)]-bas2[5+($longueur/2)])) + ((cp2-bas2[5+($longueur/2)]) / (haut2[5+($longueur/2)]-bas2[5+($longueur/2)]))
            + ((cp2-haut2[5+$longueur]) / (haut2[5+$longueur]-bas2[5+$longueur])) + ((cp2-bas2[5+$longueur]) / (haut2[5+$longueur]-bas2[5+$longueur])) ;
            Force=Force-Force2;
            Force2=0;
            end




            Interpretation
            begin
            end

            Plot (Force2,red,1);
            Plot (Force,black,2);

            Plot (null,black,1);</font>
            </blockquote><hr />


            Commentaire


            • <blockquote><strong>Citation de : Eric_Lefort</strong> <em>(au 11-10-2012 12:48:37)</em>

              Pour <strong><u>le code Nano de la volatilité</u></strong>, il est tout simple.
              Il mesure la différence entre haut et bas de chaque jour puis applique une moyenne mobile (deux sont prévues en fai)
              En général j'utilise 14 ou 20 jours pour le court terme, et 50 jours pour le long terme.

              <font color='#0000FF'>express E_Volat_Jour
              //Eric Lefort pour MOGALEF

              vars
              input $Periode_courte(2,40,20),$Periode_longue(40,150,50);
              series Volat,MMC,MML;

              calculation
              // Le programme s'exécute à la clôture de chaque barre et non à chaque tick
              if IsFirstBar() then
              begin
              CalculateAtEveryTick(false);
              end

              Volat=h-l;
              MovingAverage(Volat,MMC,$Periode_courte);
              MovingAverage(Volat,MML,$Periode_longue);

              Interpretation
              begin
              end

              // Plot (Volat... chercher histogramme dans le pg macd histo)
              Plot (MMC,"red",1);
              Plot (MML,"blue",2);</font>
              </blockquote><hr />


              @Eric_Lefort

              Merci pour le code force relative <img src='http://www.pro-at.com/style/images/icones/Super11.gif' border='0' alt='' title='' align='middle' />
              Celui que tu m'avais envoyé était crypté.

              Pour la volatilité, j'ai presque le même, ça me rassure <img src='http://www.pro-at.com/style/images/icones/icon_smile_big.gif' border='0' alt='' title='' align='middle' /> mais je l'ai appelé S_TrDma puisque c'est le TrDma de @Bpratsdesclaux <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />
              <center><img src='http://www.pro-at.com/forums-bourse/1012/1638_111334.png' alt='' /></center>
              Je me demande tout de même si on ne peut pas optimiser le code vu que j'ai un message en ce sens dans le rapport d'analyse de code.
              Il me semblait pourtant optimisé. <img src='http://www.pro-at.com/style/images/icones/icon_smile_question.gif' border='0' alt='' title='' align='middle' />
              Voici le message pour ton code E_Volat_Jour

              Si quelqu'un a un avis ?

              <center><a href='http://www.pro-at.com/forums-bourse/1012/1638_111423.png' target='_blank' style='display:block; width:600px; border:2px dashed #888; padding:10px'><img src="http://www.pro-at.com/forums-bourse/1012/1638_111423.png" alt='' width='600' height='78' /><em style='display:block; text-align: right'>Cliquez pour agrandir</em></a></center>

              Commentaire


              • Bonjour Sylvie, en forme?

                Ce qui suit devrait apporter une réponse
                Je n'ai pas comparé les courbes à vérifier

                Sinon on peut aussi employer une autre formule de calcul des moyennes qui est moins gourmande en calculs que celle intégrée dans NanoTrader mais ça ajoute des lignes aux programmes, je le fais quand il y a beaucoup de moyennes à calculer!

                express E_Volat_Jour
                //Eric Lefort pour MOGALEF

                vars
                input $Periode_courte(2,40,20),$Periode_longue(40,150,50);
                series Volat,MMC,MML;

                calculation
                // Le programme s'exécute à la clôture de chaque barre et non à chaque tick
                CalculateAtEveryTick(false);
                Volat=h-l;
                if IsFirstBar() then
                begin
                MovingAverage(Volat,MMC,$Periode_courte);
                MovingAverage(Volat,MML,$Periode_longue);
                end




                Interpretation
                begin
                end

                // Plot (Volat... chercher histogramme dans le pg macd histo)
                Plot (MMC,"red",1);
                Plot (MML,"blue",2);

                Amicalement

                Bonne journée

                Commentaire


                • Bonjour Bernard
                  Quelque chose me disait que la réponse viendrait de toi. <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />

                  J'avais essayé aussi de modifier l'ordre du CalculateAtEveryTick(false) comme dans ta formule
                  mais dans ce cas là, ça ne fonctionne plus. <img src='http://www.pro-at.com/style/images/icones/icon_smile_blackeye.gif' border='0' alt='' title='' align='middle' />

                  <center><img src='http://www.pro-at.com/forums-bourse/1012/1638_111550.png' alt='' /></center>

                  Commentaire


                  • <blockquote><strong>Citation de : StarGate1</strong> <em>(au 11-10-2012 15:38:11)</em>
                    Sinon on peut aussi employer <strong>une autre formule de calcul des moyennes</strong> qui est moins gourmande en calculs que celle intégrée dans NanoTrader mais ça ajoute des lignes aux programmes, je le fais quand il y a beaucoup de moyennes à calculer!
                    </blockquote><hr />

                    @StarGate1
                    J'ai quelques express avec pas mal de moyennes. A l'occasion, je veux bien cette formule afin de l'essayer sur mes codes.
                    Merci d'avance <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />

                    Commentaire


                    • Bonjour
                      je pense qu'il faut inclure le "volat" dans le if is first bar
                      voir même lui dédier un sentimentor qui sera appelé sous forme de série

                      Lionel

                      Commentaire


                      • Merci pour cette amélioration, car meêm si on n'a le calcul qu'une fois par jour il est toujours utile de noter les "petits" détails qui font gagner du temps machine.

                        Commentaire


                        • Bonjour à toutes et à tous

                          En explicitant ce que sont censés faire
                          if Isfirstbar() et if isfinalbar()

                          Pour n'avoir à calculer qu'une addition, une soustraction et une division au lieu de $span additions, une soustraction et une division !
                          cela donne :
                          ----------------------------------------------------
                          //Test 12-10-2012

                          Express Moyenne_Mobile

                          Vars
                          input $Span(1,200,10);
                          series mean, somme, moy;

                          Calculation
                          somme = sum(c,$Span);
                          if somme[1] = void then
                          mean = close;
                          mean = ((somme[1] + c)-c[$span])/$Span;

                          MovingAverage(c,Moy,$Span);
                          // calcul de la moyenne intégrée sur la plateforme pour //vérification de résultat identique, //CalculateAtEverytick(false)non utilisé

                          Interpretation
                          begin
                          end

                          plot (mean,"Blue",1);
                          plot (moy,"red",1);
                          -----------------------------------------------------------
                          Comparer les deux courbes pour vérifier que le résultat est identique.

                          La moyenne mobile exponentielle ou toute autre moyenne peuvent également avoir des calculs similaires
                          Ex moyenne exponentielle
                          --------------------------------------------
                          //(c) Fipertec

                          Express EMA
                          Vars
                          input $span (1, 200, 10);
                          numeric factor (0);
                          series ema;

                          Calculation
                          factor = 2 / ($span + 1);

                          if close[1] = void then //we need one lookback entry
                          ema = close;
                          else
                          ema = factor * close + (1 - factor) * ema[1];

                          interpretation TriggerLine(close, ema);

                          plot (ema, blue, 2);
                          plot (close, black, 1);

                          ------------------------------------------------------------
                          etc........

                          Bonne journée

                          Commentaire


                          • <img src='http://www.pro-at.com/style/images/icones/Merci.gif' border='0' alt='' title='' align='middle' /> Bernard.
                            Je vais regarder ça tout de suite.
                            Bonne journée <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />

                            Commentaire


                            • Bonsoir à toute et à tous

                              Nonotrader ne possède pas de fonction "Median" permettant de sélectionner la valeur médiane dans une liste (et non pas la moyenne, ne pas confondre!)

                              J'ai donc écrit un petit programme de calcul "rapide" du médian ne nécessitant pas de tri que je vous fourni à titre d'information.

                              Ce bout de programme est à inclure par exemple dans les programmes qui permettent de rendre "adaptatif" à la période immédiate toute moyenne et même tout indicateur.

                              ////////////////////////////////////////////////////////////
                              //
                              // CACUL DE LA VALEUR MEDIANE DE DELTAPHASE SUR 5 PERIODES
                              //
                              // Utilisé dans un programme permettant de rendre ADAPTATIF
                              // tout indicateur en fonction de la période immédiate des // cours
                              //
                              // Express n'a pas de fonction de calcul du médian,
                              //
                              // Algorithme basé sur la méthode du pivot, rapide ne
                              // nécessitant pas de tri.
                              // Version uniquement pour un nombre d'éléments impairs (5 // éléments en dur dans le programme),
                              // facilement adaptable pour un nombre d'éléments pairs ou // variable
                              ////////////////////////////////////////////////////////////

                              for i = 0 to 4 // Nb d'éléments - 1 pour la première boucle //i
                              begin
                              M = DeltaPhase<em>; //la série dont on veut trouver la //médiane
                              SousPivot = 0; // sous le pivot
                              SurPivot = 0; // au dessus du pivot
                              end
                              for j = 0 to 4 // Deuxième boucle j
                              begin
                              if DeltaPhase[j] < M then
                              SousPivot = SousPivot + 1; // si élément inférieur à M //classement dans souspivot
                              else if DeltaPhase[j] > M then
                              SurPivot = SurPivot + 1; // si élément supérieur à M //classement dans surpivot
                              end
                              if SurPivot = SousPivot and j = 4 then
                              MedianDelta = M; // Lorsque tous les //éléments sont classées M représente la valeur médiane

                              ////////////////////////////////////////////////////////////

                              Bonne soirée et bon week end

                              Bernard

                              Commentaire


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

                                Commentaire

                                Chargement...
                                X