Vitesse





//+------------------------------------------------------------------+
//|                                                      Vitesse.mq4 |
//|                            Copyright © 2007, GwadaTradeBoy Corp. |
//|                                            racooni_1975@yahoo.fr |
//+------------------------------------------------------------------+
//|                                          Author: Thierry Clément |
//|                                 MQ4 Conversion: Ignace BIENVILLE |
//|                                            racooni_1975@yahoo.fr |
//+------------------------------------------------------------------+
/*[[
REM Calcul de la Vitesse
MaMoyenne = Average[50](Close)
IF MaMoyenne[1]<> 0 THEN
   Indicateur = 100*(MaMoyenne - MaMoyenne[1]) / MaMoyenne[1]
ELSE
   Indicateur = 0
ENDIF
Vitesse = Average[10](Indicateur)
Return Vitesse
+------------------------------------------------------------------+
Clément, Thierry (CB). 
Le guide complet de l'analyse technique pour la gestion de vos 
portefeuilles boursiers 3e édition.
Maxima, 2006.
ISBN 2 84 001 480-7
Page 122
]]*/
#property copyright "Copyright © 2007, GwadaTradeBoy Corp."
#property link      "racooni_1975@yahoo.fr"
#property copyright "Copyright © 2006, Thierry Clément"
#property link      "thierry-clement@maxima.fr"

#property indicator_separate_window
//----Section #property
#property indicator_buffers 3
#property indicator_color1 Black    //LightSeaGreen
#property indicator_color2 Red
#property indicator_color3 LightCoral

//---- 
extern int  MAPeriod = 50;
extern int  VitessePeriod = 10;

//---- Variables
int      nShift;
int      i,j,limit,counted_bars;
//double   vites;

//---- Buffers
double   MaMoyenne[];
double   Indicateur[];
double   Vitesse[];
//ArraySetAsSeries(Indicateur,true);
//int      limitI=ArraySize(Indicateur);

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
//---- indicators
//---- Styles et couleur des Lignes
      SetIndexStyle(0,DRAW_NONE);
      SetIndexBuffer(0,MaMoyenne);
      SetIndexStyle(1,DRAW_NONE);
      SetIndexBuffer(1,Indicateur);
      SetIndexStyle(0,DRAW_LINE);
      SetIndexBuffer(0,Vitesse);
//----       
      switch(Period())
         {
            case     1: nShift = 1;   break;
            case     5: nShift = 3;   break;
            case    15: nShift = 5;   break;
            case    30: nShift = 10;  break;
            case    60: nShift = 15;  break;
            case   240: nShift = 20;  break;
            case  1440: nShift = 80;  break;
            case 10080: nShift = 100; break;
            case 43200: nShift = 200; break;
         }
//----
      return(0);
   }

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
   {
//----
   
//----
      return(0);
   }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
   {
      counted_bars = IndicatorCounted();
//----
      if(counted_bars < 0) 
         return(-1);
      if(counted_bars > 0) 
         counted_bars--;
//---- initial zero
      if(counted_bars < 1)
         for(i = 1; i <= MAPeriod; i++)
            {
               MaMoyenne[Bars - i] = EMPTY_VALUE;
               Indicateur[Bars - i] = EMPTY_VALUE;
               Vitesse[Bars - i] = EMPTY_VALUE;
            }
//----
      limit = Bars - counted_bars;
      for(i = 0; i < limit; i++)
         {
            if (Period() >= 1440)
               MaMoyenne[i] = iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,i);
            else
               MaMoyenne[i] = iMA(NULL,PERIOD_D1,MAPeriod,0,MODE_SMA,PRICE_CLOSE,i);
            if (MaMoyenne[i+1] != 0) // <> Diferent de
               Indicateur[i] = 100 * ((MaMoyenne[i] - MaMoyenne[i+1]) / MaMoyenne[i+1]);
            else
               Indicateur[i] = 0;
//            vites = iMAOnArray(Indicateur,0,VitessePeriod,0,MODE_SMA,i);  //( Indicateur)
//            Vitesse[i] = vites;
//  iMAOnArray( double array[], int total, int period, int ma_shift, int ma_method, int shift) 
            Vitesse[i] = iMAOnArray(Indicateur,0,VitessePeriod,0,MODE_SMA,i);  //( Indicateur)
         }
//----
      return(0);
   }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:

Implements a curve of type DRAW_NONE

Implements a curve of type DRAW_LINE

Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: