#property copyright "Copyright © 2021, Arup Nag"
#property link ""
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
#property indicator_width1 1
extern int VIX_Period = 22;
double VixBuffer[];
int init() {
string short_name;
IndicatorBuffers(1);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,VixBuffer);
//SetIndexBuffer(1,TempBuffer);
short_name="Ultimate Divergence ("+VIX_Period+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
SetIndexDrawBegin(0,VIX_Period);
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int i, counted_bars=IndicatorCounted();
if(Bars<=VIX_Period) return(0);
if(counted_bars<1) {
for(i=1;i<=VIX_Period;i++) {
VixBuffer[Bars-i]=0.0;
}
}
int limit=Bars-counted_bars;
if (counted_bars>0) limit++;
for(i=0; i<limit; i++)
VixBuffer=VIX(i);
return(0);
}
//+------------------------------------------------------------------+
double VIX(int shift) {
double highClose1, vix1;
highClose1 = Close[iHighest(NULL,0,MODE_CLOSE,VIX_Period,shift)];
vix1 = (Low[shift] - highClose1) / highClose1 * 100;
double highClose2, vix2;
highClose2 = Close[iLowest(NULL,0,MODE_CLOSE,VIX_Period,shift)];
vix2 = (High[shift] - highClose2) / highClose2 * 100;
return (vix1+vix2);