//+------------------------------------------------------------------+
//|                                                      tpTEMA1.mq4 |
//|                                                          Kalenzo |
//|                                          http://www.fxservice.eu |
//+------------------------------------------------------------------+
#property copyright "Kalenzo"
#property link      "http://www.fxservice.eu"
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_width1 1

extern int iPeriod = 21;

double tmpBuf0[],tmpBuf1[],tmpBuf2[],tmpBuf3[],tmpBuf4[];
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
IndicatorBuffers(5);
SetIndexBuffer(0,tmpBuf4);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexLabel(0,"tpTEMA1");

SetIndexBuffer(1,tmpBuf0);
SetIndexBuffer(2,tmpBuf1);
SetIndexBuffer(3,tmpBuf2);
SetIndexBuffer(4,tmpBuf3);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   
   for(int i=0; i<limit; i++)tmpBuf0[i] = iCustom(NULL,0,"tpTEMA1",iPeriod,0,i);
   for(i=0; i<limit; i++)tmpBuf1[i] = iMAOnArray(tmpBuf0,0,iPeriod,0,MODE_EMA,i);
   for(i=0; i<limit; i++)tmpBuf2[i] = iMAOnArray(tmpBuf1,0,iPeriod,0,MODE_EMA,i);
   for(i=0; i<limit; i++)tmpBuf3[i] = iMAOnArray(tmpBuf2,0,iPeriod,0,MODE_EMA,i);
   for(i=0; i<limit; i++)
   {
      tmpBuf4[i] = (3*tmpBuf1[i])-(3*tmpBuf2[i])+tmpBuf3[i];  
   }
   
   
   
   return(0);
  }
//+------------------------------------------------------------------+