protected override void Initialize()
{
Add(new Plot(Color.FromKnownColor(KnownColor.Orange), PlotStyle.Line, "Skewness"));
CalculateOnBarClose = true;
Overlay = false;
PriceTypeSupported = false;
closeOpen = new DataSeries(this);
sDev = new DataSeries(this);
}
protected override void OnBarUpdate()
{
closeOpen.Set(Close[0] - Open[0]);
if ( CurrentBar >= barLookBack )
{
sDev.Set(StdDev(closeOpen, barLookBack)[0]) ;
double xBar = Convert.ToDouble(SMA(closeOpen , barLookBack));
double sumofCloseOpen = 0 ;
for(int i = barLookBack; i >= 0; i--)
{
sumofCloseOpen = Math.Pow(closeOpen[i] - xBar, 3) + sumofCloseOpen ;
}
Skewness.Set(1 / ( (barLookBack - 1) * Math.Pow(sDev[0], 3) ) * sumofCloseOpen);
}
}
Comment