Media movel / 3

 

Ola gostaria de saber se alguem poderia me ajudar a modificar a formula abaixo para que a media simples  calculada fosse dividida por 3.

Imagino que seja uma coisa simples, mas eu com minha reduzida compreensao da linguagem nao consegui resolver.

Obrigado.

 //--- indicator settings
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red
//--- input parameters
input int            InpMAPeriod=5;         // Period
input int            InpMAShift=0;           // Shift
input ENUM_MA_METHOD InpMAMethod=MODE_SMA;  // Method
//--- indicator buffers
double               ExtLineBuffer[];
//+------------------------------------------------------------------+
//|   simple moving average                                          |
//+------------------------------------------------------------------+
void CalculateSimpleMA(int rates_total,int prev_calculated,int begin,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   if(prev_calculated==0)// first calculation
     {
      limit=InpMAPeriod+begin;
      //--- set empty value for first limit bars
      for(i=0;i<limit-1;i++) ExtLineBuffer[i]=0.0;
      //--- calculate first visible value
      double firstValue=0;
      for(i=begin;i<limit;i++)
         firstValue+=price[i];    
      firstValue/=InpMAPeriod;           
      ExtLineBuffer[limit-1]=firstValue;
     }
   else limit=prev_calculated-1;
//--- main loop
   for(i=limit;i<rates_total && !IsStopped();i++)
      ExtLineBuffer[i]=ExtLineBuffer[i-1]+(price[i]-price[i-InpMAPeriod])/InpMAPeriod;
//---
  }
 
Marreta:

Ola gostaria de saber se alguem poderia me ajudar a modificar a formula abaixo para que a media simples  calculada fosse dividida por 3.

Imagino que seja uma coisa simples, mas eu com minha reduzida compreensao da linguagem nao consegui resolver.

Obrigado.

Olá Marreta,

Basicamente essa sua função aplica o cálculo de uma média móvel e passa o valor por referência para o array  "price".

Acredito que a modificação possa ser feita internamente à função, entretanto, seria mais interessante se você pudesse modificar o resultado final, ao invés de modificar a função original, uma vez que a mesma é padrão da biblioteca da MetaQuotes, se não me engano.

Portanto, se essa função está sendo aplicada internamente num indicador, basta pegar o valor final calculado da função e dividir por três, porém, externamente à função, entende?

Espero que tenha ajudado. Se tiver qualquer outra dúvida, por favor poste aqui.

Abraços,
Malacarne 

Razão: