Author: paladin80
iACfunc
Indicators Used
Moving average indicatorMoving average indicator
0 Views
0 Downloads
0 Favorites
iACfunc
//+------------------------------------------------------------------+
//|                                                  iACfunc.mq4     |
//|                                         Author:  paladin80       |
//|                                         E-mail:  forevex@mail.ru |
//+------------------------------------------------------------------+
#property copyright "paladin80"
#property link      "forevex@mail.ru"
#property library
//--------------------------------------------- iACfunc() - start ------------------------------------------------------------
//+----------------------------------------------------------------------------+
//| Input parameters:                                                          |
//|   Sy - Symbol.                                                             |
//|   Tf - Timeframe.                                                          |
//|   MA_mode - Applied MA method.                                             |
//|   Applied_price - Applied price.                                           |
//|   Period_1 , Period_2 , Period_3 - Periods for calculation of indicator    |
//|           (see formulas below)                                             |
//|   Shift - Index of the value taken from the indicator buffer.              |
//+----------------------------------------------------------------------------+----+
//| Formulas for calculation standard AC (http://codebase.mql4.com/247)             |
//|   The function iACfunc() is calculated according formulas:                      |
//|   AO = MA_mode (Applied_price, Period_1) - MA_mode (Applied_price, Period_2)    |
//|   AC = AO - MA_mode (AO, Period_3)                                              |
//+---------------------------------------------------------------------------------+
double iACfunc(string Sy,int Tf,int MA_mode,int Applied_price,int Period_1,int Period_2,int Period_3,int Shift)
{
   double AOBuffer[], AC;
   if (Sy=="" || Sy=="0") Sy=Symbol();
   int limit=MathMax(MathMax(Period_1,Period_2),Period_3)-1+Shift;
   ArrayResize(AOBuffer,limit);
      for (int i=0; i<=limit; i++)
      {
      AOBuffer[i]=iMA(Sy,Tf,Period_1,0,MA_mode,Applied_price,i)-iMA(Sy,Tf,Period_2,0,MA_mode,Applied_price,i);
      }
   ArraySetAsSeries(AOBuffer,true);
   AC=AOBuffer[Shift]-iMAOnArray(AOBuffer,0,Period_3,0,MA_mode,Shift);
   return(AC);
}
//--------------------------------------------- iACfunc() - end ------------------------------------------------------------

















Comments