EVWMA_v2





//+------------------------------------------------------------------+
//|                                                            EVWMA |
//|                               Copyright © 2004, Poul_Trade_Forum |
//|                                                         Aborigen |
//|                                          http://forex.kbpauk.ru/ |
//+------------------------------------------------------------------+
#property copyright "Poul Trade Forum"
#property link      "http://forex.kbpauk.ru/"
//----
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 DeepPink
//----
extern int VolumeDivisor=1;
extern int N=100;
//----
double  ScaledVol=0, VolDiff=0;
double X[100], Y[100];
bool Violation=false;
//---- buffers
double EVWMA[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE,EMPTY,2,DeepPink);
   SetIndexBuffer(0,EVWMA);
   SetIndexEmptyValue(0,0);
//---- name for DataWindow and indicator subwindow label
   short_name="EVWMA";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   SetIndexDrawBegin(0,1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
      return(0);   
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted(),i,shift,count;
//----
   if (counted_bars==0) {EVWMA[Bars]=Close[Bars]; counted_bars=1;}
   i=(Bars-counted_bars);
   for(shift=i; shift>=0;shift--)
     {
      ScaledVol=Volume[shift]/VolumeDivisor;
      VolDiff=N - ScaledVol;
      if(VolDiff<0 && Violation==false)  Violation=true;
      if (Violation==true)  EVWMA[shift]=EVWMA[shift+1];
      else EVWMA[shift]=(VolDiff * EVWMA[shift+1] + ScaledVol * Close[shift])/N ;
      Violation=false;
      //----
     }
   return(0);
  }
//+------------------------------------------------------------------+





Sample





Analysis



Market Information Used:

Series array that contains close prices for each bar
Series array that contains tick volumes of each bar


Indicator Curves created:

Implements a curve of type DRAW_LINE


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: