double FullLength = 2.0*HalfLength+1.0;
vars Trimavar = series(Trima(Price,5));
var upper;
var lower;
vars wuBuffer;
vars wdBuffer;
double diff = 0;//SMA(Price,1)-Trimavar[0];
upper = Trimavar[0];
lower = Trimavar[0];
if (diff>=0)
{
wuBuffer[0] = pow(diff,2);
wdBuffer[0] = 0;
}
else
{
wdBuffer[0] = pow(diff,2);
wuBuffer[0] = 0;
}
if(diff>=0)
{
wuBuffer[0] = (wuBuffer[1]*(FullLength-1)+pow(diff,2))/FullLength;
wdBuffer[0] = wdBuffer[1]*(FullLength-1)/FullLength;
}
else
{
wdBuffer[0] = (wdBuffer[1]*(FullLength-1)+pow(diff,2))/FullLength;
wuBuffer[0] = wuBuffer[1]*(FullLength-1)/FullLength;
}
upper = Trimavar[0] + BandsDeviations*sqrt(wuBuffer[0]);
lower = Trimavar[0] - BandsDeviations*sqrt(wdBuffer[0]);