Log in to see Cloud of Tags

Wealth-Lab Wiki


public static Volatility Series(Bars bars, int emaPeriod, int rocPeriod)
public Volatility(Bars bars, int emaPeriod, int rocPeriod, string description)

Parameter Description

bars The Bars object
emaPeriod EMA period
rocPeriod ROC period


Return's Chaikin's Volatility indicator of the EMA and ROC periods. Chaikin's Volatility first calculates an EMA of the difference between the High and Low price. The Volatility indicator is then created by taking the ROC of this value over a period specified by rocPeriod. The period of the EMA is specified in the period parameter.


  • High values indicate that intraday prices have a wide high to low range. Low values indicate that intraday prices have relatively constant high to low range.
  • 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.


First calculate an EMA of the difference between High and Low price.

HLAve = 10-day EMA( High - Low)

Then take the ROC of this value over a period specified by rocPeriod.

CV = ( HLAve) / ( HLAve n days ago)

CV = Chaikin's Volatility value
n = number of ROC periods


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

namespace WealthLab.Strategies { public class MyStrategy : WealthScript { // Thank you fundtimer public Color WS4ColorToNET( double WS4Color ) { return Color.FromArgb( (int)Math.Floor( ( WS4Color % 1000 ) / 100 * 28.4 ), (int)Math.Floor( ( WS4Color % 100 ) / 10 * 28.4 ), (int)Math.Floor( WS4Color % 10 * 28.4 ) ); } protected override void Execute() { // Colors bars with higher intensity red as volatility increases DataSeries vlty = Volatility.Series( Bars, 14, 10 ); double v = 0; double n = 0; ChartPane VolPane = CreatePane( 50, true, true ); PlotSeries( VolPane, vlty, Color.DarkBlue, LineStyle.Solid, 2 ); SetBarColors( Color.Silver, Color.Silver );

// Volatility is an unstable indicator for(int bar = 45; bar < Bars.Count; bar++) { v = vlty[bar]; n = Math.Round( v ) % 10; if( ( n < 0 ) || ( n > 9 ) ) n = 0; SetBarColor( bar, WS4ColorToNET( n * 100 ) ); } } } }

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.

ScrewTurn Wiki. Some of the icons created by FamFamFam.