Wealth-Lab Wiki

API ChartStyles Community Components Community Indicators IndexDefinitions Knowledge Base Misc Optimizers Pending Deletion PosSizers Providers Standard Indicators TASC Traders Tips TASCIndicators Tutorial Videos Visualizers
RSS

Navigation


Quick Search
»
Advanced Search »


Syntax

public static StdDev Series(DataSeries ds, int period, WealthLab.Indicators.StdDevCalculation calcType)
public StdDev(DataSeries ds, int period, StdDevCalculation calcType, string description)
public static double Value(int bar, DataSeries ds, int period, StdDevCalculation calcType)

Parameter Description

ds The source DataSeries
period Indicator calculation period
calcType WealthLab.Indicators.StdDevCalculation
public const WealthLab.Indicators.StdDevCalculation Population = 0
public const WealthLab.Indicators.StdDevCalculation Sample = 1

Description

Standard Deviation is the statistical measure of market volatility. If prices trade in a tight narrow trading range then StdDev will return a low value indicating volatility is low. Conversely if prices swing wildly up and down then StdDev returns a high value indicating volatility is high. What it does is measure how widely prices are dispersed from the average or mean price.

Interpretation

  • Standard deviation rises as prices become more volatile. As price action calms, standard deviation heads lower.
  • Market tops accompanied by increase volatility over short periods of time, indicate nervous and indecisive traders. Or market tops with decreasing volatility over long time frames, indicate maturing bull markets.
  • Market bottoms accompanied by decreased volatility over long periods of time, indicate bored and disinterested traders. Or market bottoms with increasing volatility over relatively sort time periods, indicate panic sell off.

Remarks

  • Avoid testing StdDev of a Standard Price Series (Bars.Open, Bars.Close, etc.) for an absolute value since these series can be adjusted (split) in the future, which will change their historic deviations. Instead, normalize the test by dividing both StdDev and the value (or series) by the DataSeries value.

Avoid

if( StdDev.Value( bar, Close, 20 ) < 1.5 ...

Correct

/* Normalized */
double C = Close[bar];
if( ( StdDev.Series( Close, 20 )[bar] / C ) < ( 1.5 / C ) )...

Calculation

You can choose between standard deviation of a sample (compatible with Excel STDEV) or of a population (compatible with Excel STDEVP) by passing the appropriate value from the 'WealthLab.Indicators.StdDevCalculation' enum.

Steps to calculate Standard Deviation for n periods

  1. Calculate the mean price by summating the price for n periods and divide by n.
  2. From each period's price subtract the mean, this gives you the deviation for each period.
  3. Find the sum of the squares of all deviations.
  4. Divide the sum of the squared deviations found in step 3 by ( n - 1 ).
  5. Calculate the square root of the result of the previous step.

Example

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;

namespace WealthLab.Strategies { public class MyStrategy : WealthScript { protected override void Execute() { // Divide Standard Deviation by Average Price to arrive at a normalized Volatility indicator DataSeries MyVolatility = StdDev.Series( Close, 30, StdDevCalculation.Population ) / SMA.Series( Close, 30 ); MyVolatility.Description = "Normalized Volatility"; ChartPane VolPane = CreatePane( 50, true, true ); PlotSeries( VolPane, MyVolatility, Color.Purple, LineStyle.Histogram, 3 ); // Plot Std Dev Bands aka Bollinger Bands HideVolume(); DataSeries StdDevBand = StdDev.Series( Close, 20, StdDevCalculation.Population ) * 2; DataSeries StdH = SMA.Series( Close, 20 ) + StdDevBand; DataSeries StdL = SMA.Series( Close, 20 ) - StdDevBand; PlotSeriesDualFillBand( PricePane, StdH, StdL, Color.FromArgb(10,10,0,0), Color.Empty, Color.Empty, LineStyle.Solid, 1 ); } } }

Important Disclaimer: The information provided by Wealth-Lab is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security.  The owner of Wealth-Lab.com assumes no liability resulting from the use of the material contained herein for investment purposes. By using this web site, you agree to the terms of this disclaimer and our Terms of Use.

Used under license from FMR Corp. Copyright 2008 FMR Corp. All rights reserved.


ScrewTurn Wiki. Some of the icons created by FamFamFam.