 # Standard Deviation based off of Historical Volatility?

#### javin82

##### New member
I need some help programming this indicator. I am trying to plot a 1 standard deviation band above and below a 200 period simple moving average. I want the standard deviation to be based off of historical volatility. Similar to how "the impeccable investor" uses. here is what I have so far:

Code:
``````input HVlength = 20;
def closeLog = Log(close / close);
def SDev = stdev(closeLog,HVlength) * Sqrt(HVlength / (HVlength-1));
def m= SDev * close;
def spike = Average((close - close) / m);

input length = 200;

input numDevDn = -1.0;
input numDevUp = 1.0;
input averageType = AverageType.SIMPLE;

def avg = Average(close, length);
def expDev = ExpAverage(AbsValue(avg - close), length);

def SMADev = SimpleMovingAvg(AbsValue(avg - close), length);
plot UpperBand = avg + numDevUp * Average(SMADev+spike-1, 1);
plot LowerBand = avg + numDevDn * Average(SMADev+spike-1,1);

UpperBand.SetDefaultColor(Color.GREEN);
LowerBand.SetDefaultColor(Color.RED);

thanks for any help in advance!

Last edited by a moderator:

#### horserider

##### Well-known member
VIP
Try plotting your defined values to see what you get.

Code:
``````input HVlength = 20;
def closeLog = Log(close / close);
def SDev = stdev(closeLog,HVlength) * Sqrt(HVlength / (HVlength-1));
def m= SDev * close;
def spike = Average((close - close) / m);

input length = 200;

input numDevDn = -1.0;
input numDevUp = 1.0;
input averageType = AverageType.SIMPLE;

def avg = Average(close, length);
def expDev = ExpAverage(AbsValue(avg - close), length);
plot avg1= avg;
plot expDev1 = expdev;
def SMADev = SimpleMovingAvg(AbsValue(avg - close), length);
plot UpperBand = avg + numDevUp * Average(SMADev+spike-1, 1);
plot LowerBand = avg + numDevDn * Average(SMADev+spike-1,1);

UpperBand.SetDefaultColor(Color.GREEN);
LowerBand.SetDefaultColor(Color.RED);

***
You define "def expDev = ExpAverage(AbsValue(avg - close), length);" but seem to never use that value.

#### javin82

##### New member
@horserider Yes, I have been tweaking this code and must've left that line in from a previous version. It's not exact, but it is pretty dang close. Thanks for the help!

#### alsniper

##### New member
Yes, I have been tweaking this code and must've left that line in from a previous version.
It's not exact, but it is pretty dang close. Thanks for the help!
did you get the exact result?

#### alsniper

##### New member
Hello. I am trying to make accurate but cannot get it right. I wonder how to make it look like below?

as you can see the bands are smoothed and are not spread too much as coded in TOS.

Last edited:

#### XeoNoX

##### Well-known member
VIP
@alsniper make sure the study uses the same calculations, same inputs, same time frame, and make sure the extended hours match.

• alsniper and BenTen