Annonce
Réduire
Aucune annonce.
Ads
Réduire
Repulse et Metatrader
Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Repulse et Metatrader

    Bonjour,
    Je souhaite utiliser le Repulse d'Eric Lefort avec Metatrader.

    Quelqu'un sait-il si cet indicateur est programm

  • #2
    Hello !
    Personne ne sait ou trouver le repulse pour metatrader ?

    Merci

    Commentaire


    • #3
      jamais vu pour mt4...et pourtant c'est fourni en indicateur....

      Commentaire


      • #4
        bonjour à tous,

        voici les codes pour metatrader mq4:


        //----------------------------------------------------------------------------------------------------
        // Repulse
        //----------------------------------------------------------------------------------------------------
        vars:
        ZeroLine(0),
        Repulse(0),
        ForceHaussiere(0),
        ForceBaissiere(0);

        ForceHaussiere = XAverage( ((3*C) - (2*L)-O) / C * 100, 5);
        ForceBaissiere = XAverage( (O + (2*H)-(3*C)) / C * 100, 5);

        Repulse = ForceHaussiere-ForceBaissiere ;

        Plot1( Repulse, "Repulse" );
        Plot2( ZeroLine, "Zero Line");
        //----------------------------------------------------------------------------------------------------


        //----------------------------------------------------------------------------------------------------
        // Repulse(x)
        //----------------------------------------------------------------------------------------------------
        input:
        Length(5);
        vars:
        Repulse(0),
        ForceHaussiere(0),
        ForceBaissiere(0);

        ForceHaussiere = XAverage( ((3*C) - (2*lowest(L, Length))-O[Length]) / C * 100, 5*Length);
        ForceBaissiere = XAverage( (O[Length] + (2*highest(H, Length))-(3*C)) / C * 100, 5*Length);

        Repulse = ForceHaussiere-ForceBaissiere ;

        Plot1( Repulse, "Repulse(x)" );
        //----------------------------------------------------------------------------------------------------



        //----------------------------------------------------------------------------------------------------
        // STPMT
        //----------------------------------------------------------------------------------------------------
        inputs:
        Length(9),
        OverSold( 20 ),
        OverBought( 80 ) ;

        variables:
        STPMT(0),
        MM_STPMT(0);

        STPMT = (4.1*SlowKCustomOrig(H, L, C, 5, 3) + 2.5*SlowKCustomOrig(H, L, C, 14, 3) + SlowKCustomOrig(h, L, C, 45, 14) + 4*SlowKCustomOrig(H, L, C, 75, 20))/11.6;
        MM_STPMT = Average(STPMT, Length);

        Plot1( STPMT, "STPMT" ) ;
        Plot2( MM_STPMT, "MM_STPMT" ) ;
        Plot3( OverBought, "OverBot" ) ;
        Plot4( OverSold, "OverSld" ) ;

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



        //----------------------------------------------------------------------------------------------------
        // Cycle
        //----------------------------------------------------------------------------------------------------
        inputs:
        Length(9);

        vars:
        STPMT(0),
        Cycle(0);

        Value1 = SlowKCustomOrig(H, L, C, 5, 3);
        Value2 = SlowKCustomOrig(H, L, C, 14, 3);
        Value3 = SlowKCustomOrig(h, L, C, 45, 14);
        Value4 = SlowKCustomOrig(H, L, C, 75, 20);

        STPMT = ((4.1*Value1)+(2.5*Value2)+(Value3)+(4*Value4))/11.6;
        Cycle = STPMT - AverageFC( STPMT, Length );

        Cycle = STPMT - AverageFC( STPMT, Length );
        Plot1( Cycle, "Cycle" );
        //----------------------------------------------------------------------------------------------------

        Commentaire


        • #5
          merci à toi !
          mais..il doit en manquer des bouts, j'ai des erreurs de compilation...à suivre !

          Commentaire


          • #6
            Je n'ai pas l'impression que ce soit du mq4....

            Entre temps j'ai trouvé le code suivant qui fonctionne :

            //+------------------------------------------------------------------+
            //| Repulse.mq4 |
            //| Anaphrais |
            //| |
            //+------------------------------------------------------------------+
            #property copyright "Anaphrais"
            #property link ""

            #property indicator_separate_window
            #property indicator_buffers 1
            #property indicator_color1 Red

            //---- buffers
            double ExtMapBuffer1[];
            //+------------------------------------------------------------------+
            //| Custom indicator initialization function |
            //+------------------------------------------------------------------+
            int init()
            {
            //---- indicators
            SetIndexStyle(0,DRAW_LINE);
            SetIndexBuffer(0,ExtMapBuffer1);
            SetLevelValue(0,0);
            SetLevelStyle(STYLE_DOT,0,White);
            //----
            return(0);
            }
            //+------------------------------------------------------------------+
            //| Custom indicator deinitialization function |
            //+------------------------------------------------------------------+
            int deinit()
            {
            //----

            //----
            return(0);
            }
            //+------------------------------------------------------------------+
            //| Custom indicator iteration function |
            //+------------------------------------------------------------------+
            int start()
            {


            double forcehaussiere=0 ,forcebaissiere=0;

            for(int i=300;i>=0;i--)
            {
            forcehaussiere=iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,i)*(((3*Close)-(2*Low)-Open)/Close*100);

            forcebaissiere=iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,i)*((Open+(2*High)-(3*Close))/Close*100);

            ExtMapBuffer1=(forcehaussiere-forcebaissiere);
            }
            //----

            //----
            return(0);
            }
            //+------------------------------------------------------------------+

            Commentaire


            • #7
              Voici un repulse pour Metatrader : les périodes par défaut sont 1, 5, 15 (et modifiables bien entendu).
              C'est mon premier indicateur pour Metatrader, alors d'avance merci pour toutes vos remarques, y compris des suggestion d'optimisation.

              //+------------------------------------------------------------------+
              //| Repulse.mq4 |
              //| FCognet |
              //| |
              //+------------------------------------------------------------------+
              #property copyright "Eric Lefort"
              #property link "http://www.pro-at.com"

              #property indicator_separate_window
              #property indicator_buffers 3
              #property indicator_color1 Gray
              #property indicator_color2 Yellow
              #property indicator_color3 Cyan

              //---- input parameters
              extern int RepulsePeriod1=1;
              extern int RepulsePeriod2=5;
              extern int RepulsePeriod3=15;
              //---- buffers
              double RepulseBuffer1[];
              double RepulseBuffer2[];
              double RepulseBuffer3[];
              double PosBuffer[];
              double NegBuffer[];

              //+------------------------------------------------------------------+
              //| Custom indicator initialization function |
              //+------------------------------------------------------------------+
              int init() {
              string short_name;
              short_name="Repulse("+RepulsePeriod1+", "+RepulsePeriod2+", "+RepulsePeriod3+")";
              IndicatorShortName(short_name);
              //---- indicators
              IndicatorBuffers(5);
              SetIndexBuffer(0,RepulseBuffer1);
              SetIndexBuffer(1,RepulseBuffer2);
              SetIndexBuffer(2,RepulseBuffer3);
              SetIndexBuffer(3,PosBuffer);
              SetIndexBuffer(4,NegBuffer);

              SetIndexStyle(0,DRAW_LINE);
              SetIndexStyle(1,DRAW_LINE);
              SetIndexStyle(2,DRAW_LINE);
              SetIndexStyle(3,DRAW_NONE);
              SetIndexStyle(4,DRAW_NONE);

              SetLevelValue(0,0);
              SetLevelStyle(STYLE_DOT,0,DimGray);

              //----
              return(0);
              }

              //+------------------------------------------------------------------+
              //| iteration function |
              //+------------------------------------------------------------------+
              int start() {
              double forceHaussiere, forceBaissiere;

              int index = 0;
              int counted_bars=IndicatorCounted();

              int limit = Bars - counted_bars;

              // Repulse1
              for(index=0;index PosBuffer[index] = ((((3*Close[index])-(2*getLow(index, RepulsePeriod1))-Open[index])/Close[index])*100);
              NegBuffer[index] = (((Open[index]+(2*getHigh(index, RepulsePeriod1))-(3*Close[index]))/Close[index])*100);
              }
              for(index=0;index forceHaussiere=iMAOnArray(PosBuffer, 0, RepulsePeriod1 * 5, 0, MODE_EMA, index);
              forceBaissiere=iMAOnArray(NegBuffer, 0, RepulsePeriod1 * 5, 0, MODE_EMA, index);
              RepulseBuffer1[index]=forceHaussiere-forceBaissiere;
              }

              // Repulse2
              for(index=0;index PosBuffer[index] = ((((3*Close[index])-(2*getLow(index, RepulsePeriod2))-Open[index+RepulsePeriod2])/Close[index])*100);
              NegBuffer[index] = (((Open[index+RepulsePeriod2]+(2*getHigh(index, RepulsePeriod2))-(3*Close[index]))/Close[index])*100);
              }
              for(index=0;index forceHaussiere=iMAOnArray(PosBuffer, 0, RepulsePeriod2 * 5, 0, MODE_EMA, index);
              forceBaissiere=iMAOnArray(NegBuffer, 0, RepulsePeriod2 * 5, 0, MODE_EMA, index);
              RepulseBuffer2[index]=forceHaussiere-forceBaissiere;
              }

              // Repulse3
              for(index=0;index PosBuffer[index] = ((((3*Close[index])-(2*getLow(index, RepulsePeriod3))-Open[index+RepulsePeriod3])/Close[index])*100);
              NegBuffer[index] = (((Open[index+RepulsePeriod3]+(2*getHigh(index, RepulsePeriod3))-(3*Close[index]))/Close[index])*100);
              }
              for(index=0;index forceHaussiere=iMAOnArray(PosBuffer, 0, RepulsePeriod3 * 5, 0, MODE_EMA, index);
              forceBaissiere=iMAOnArray(NegBuffer, 0, RepulsePeriod3 * 5, 0, MODE_EMA, index);
              RepulseBuffer3[index]=forceHaussiere-forceBaissiere;
              }
              return(0);
              }

              //+------------------------------------------------------------------+
              double getLow(int from, int period) {
              double low = 9999999999;
              for (int index=from; index<=from+period; index++) {
              if (low > Low[index]) {
              low = Low[index];
              }
              }
              return (low);
              }

              double getHigh(int from, int period) {
              double high = 0;
              for (int index=from; index<=from+period; index++) {
              if (high < High[index]) {
              high = High[index];
              }
              }
              return (high);
              }

              Commentaire


              • #8
                Voici le STPMT.
                A priori c'est ça, mais ça serait vraiment bien si quelqu'un pouvait comparer avec une implémentation sûre du STPMT sur une autre plate-forme.

                //+------------------------------------------------------------------+
                //| STPMT.mq4 |
                //| FCognet |
                //| |
                //+------------------------------------------------------------------+
                #property copyright "Eric Lefort"
                #property link "http://www.pro-at.com"

                #property indicator_separate_window
                #property indicator_buffers 6
                #property indicator_color1 DimGray
                #property indicator_color2 DimGray
                #property indicator_color3 DimGray
                #property indicator_color4 DimGray
                #property indicator_color5 Blue
                #property indicator_color6 Red

                //---- buffers
                double Buffer1[];
                double Buffer2[];
                double Buffer3[];
                double Buffer4[];
                double STPMT[];
                double STPMT_MA[];

                //+------------------------------------------------------------------+
                //| Custom indicator initialization function |
                //+------------------------------------------------------------------+
                int init() {
                string short_name;
                short_name="STPMT";
                IndicatorShortName(short_name);
                //---- indicators
                IndicatorBuffers(6);
                SetIndexBuffer(0, Buffer1);
                SetIndexBuffer(1, Buffer2);
                SetIndexBuffer(2, Buffer3);
                SetIndexBuffer(3, Buffer4);
                SetIndexBuffer(4, STPMT);
                SetIndexBuffer(5, STPMT_MA);

                SetIndexStyle(0, DRAW_LINE, STYLE_DOT);
                SetIndexStyle(1, DRAW_LINE, STYLE_DOT);
                SetIndexStyle(2, DRAW_LINE, STYLE_DOT);
                SetIndexStyle(3, DRAW_LINE, STYLE_DOT);
                SetIndexStyle(4, DRAW_LINE, EMPTY, 1);
                SetIndexStyle(5, DRAW_LINE, EMPTY, 1);


                //----
                return(0);
                }

                //+------------------------------------------------------------------+
                //| iteration function |
                //+------------------------------------------------------------------+
                int start() {

                int index = 0;
                int counted_bars=IndicatorCounted();

                int limit = Bars - counted_bars;

                for(index=0;index Buffer1[index] = iStochastic( NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, index);
                Buffer2[index] = iStochastic( NULL, 0, 14, 3, 3, MODE_SMA, 0, MODE_SIGNAL, index);
                Buffer3[index] = iStochastic( NULL, 0, 45, 14, 3, MODE_SMA, 0, MODE_SIGNAL, index);
                Buffer4[index] = iStochastic( NULL, 0, 75, 20, 3, MODE_SMA, 0, MODE_SIGNAL, index);
                STPMT[index] = (4.1 * Buffer1[index] + 2.5 * Buffer2[index] + Buffer3[index] + 4 * Buffer4[index]) / 11.6;
                }
                for(index=0;index STPMT_MA[index] = iMAOnArray(STPMT, 0, 9, 0, MODE_SMA, index);
                }
                return(0);
                }

                Commentaire


                • #9
                  Et enfin Cycles

                  //+------------------------------------------------------------------+
                  //| Cycles.mq4 |
                  //| FCognet |
                  //| |
                  //+------------------------------------------------------------------+
                  #property copyright "Eric Lefort"
                  #property link "http://www.pro-at.com"

                  #property indicator_separate_window
                  #property indicator_buffers 7
                  #property indicator_color1 Yellow

                  //---- buffers
                  double Cycle[];
                  double Buffer1[];
                  double Buffer2[];
                  double Buffer3[];
                  double Buffer4[];
                  double STPMT[];
                  double STPMT_MA[];

                  //+------------------------------------------------------------------+
                  //| Custom indicator initialization function |
                  //+------------------------------------------------------------------+
                  int init() {
                  string short_name;
                  short_name="Cycles";
                  IndicatorShortName(short_name);
                  //---- indicators
                  IndicatorBuffers(7);
                  SetIndexBuffer(0, Buffer1);
                  SetIndexBuffer(1, Buffer2);
                  SetIndexBuffer(2, Buffer3);
                  SetIndexBuffer(3, Buffer4);
                  SetIndexBuffer(4, STPMT);
                  SetIndexBuffer(5, STPMT_MA);
                  SetIndexBuffer(6, Cycle);

                  SetIndexStyle(0, DRAW_LINE, EMPTY, 1);
                  SetIndexStyle(1, DRAW_NONE);
                  SetIndexStyle(2, DRAW_NONE);
                  SetIndexStyle(3, DRAW_NONE);
                  SetIndexStyle(4, DRAW_NONE);
                  SetIndexStyle(5, DRAW_NONE);
                  SetIndexStyle(6, DRAW_NONE);

                  //----
                  return(0);
                  }

                  //+------------------------------------------------------------------+
                  //| iteration function |
                  //+------------------------------------------------------------------+
                  int start() {

                  int index = 0;
                  int counted_bars=IndicatorCounted();

                  int limit = Bars - counted_bars;

                  for(index=0;index Buffer1[index] = iStochastic( NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, index);
                  Buffer2[index] = iStochastic( NULL, 0, 14, 3, 3, MODE_SMA, 0, MODE_SIGNAL, index);
                  Buffer3[index] = iStochastic( NULL, 0, 45, 14, 3, MODE_SMA, 0, MODE_SIGNAL, index);
                  Buffer4[index] = iStochastic( NULL, 0, 75, 20, 3, MODE_SMA, 0, MODE_SIGNAL, index);
                  STPMT[index] = (4.1 * Buffer1[index] + 2.5 * Buffer2[index] + Buffer3[index] + 4 * Buffer4[index]) / 11.6;
                  }
                  for(index=0;index STPMT_MA[index] = iMAOnArray(STPMT, 0, 9, 0, MODE_SMA, index);
                  Cycle[index] = STPMT[index] - STPMT_MA[index];
                  }
                  return(0);
                  }

                  Commentaire


                  • #10
                    Voici une vue du résultat final (repulse, stpmt et cycles)
                    Cliquez pour agrandir

                    Commentaire


                    • #11
                      il y a une erreur dans le code de Cycles dans cette file.
                      J'ai créé une autre file pour l'implémentation sur Metatrader des indicateurs d'Eric Lefort.
                      http://www.pro-at.com/forums-bourse/bourse-1-27352.html

                      Commentaire


                      • #12
                        File de discussion déplacée dans le forum dédié à MetaTrader
                        Compte TWITTER / Page FACEBOOK / Chaine YOUTUBE / Compte LINKEDIN

                        Commentaire

                        Chargement...
                        X