VolatilityExtVal.efs EFSLibrary - Discussion Board
File Name: VolatilityExtVal.efs
Description:
Statistical Volatility - Extreme Value Method
Formula Parameters:
nLength : 30
Notes:
This indicator used to calculate the statistical volatility, sometime
called historical volatility, based on the Extreme Value Method.
Please use this link to get more information about Volatility.
Download File:
VolatilityExtVal.efs
EFS Code:
/********************************* Provided By: eSignal (Copyright c eSignal), a division of Interactive Data Corporation. 2009. All rights reserved. This sample eSignal Formula Script (EFS) is for educational purposes only and may be modified and saved under a new file name. eSignal is not responsible for the functionality once modified. eSignal reserves the right to modify and overwrite this EFS file with each new release. Description: Statistical Volatility - Extreme Value Method Version: 1.0 05/22/2009 Formula Parameters: Default: nLength 30 Notes: This indicator used to calculate the statistical volatility, sometime called historical volatility, based on the Extreme Value Method. Please use this link to get more information about Volatility. **********************************/ var fpArray = new Array(); var bInit = false; function preMain() { setStudyTitle("Statistical Volatility - Extreme Value Method"); setCursorLabelName("Xtrme Vlty"); var x = 0; fpArray[x] = new FunctionParameter("nLength", FunctionParameter.NUMBER); with(fpArray[x++]) { setLowerLimit(1); setDefault(30); } } var xVolatilityExtVal = null; function main(nLength) { var nBarState = getBarState(); var nVolatilityExtVal = 0; if (nBarState == BARSTATE_ALLBARS) { if (nLength == null) nLength = 30; } if (bInit == false) { xVolatilityExtVal = efsInternal("Calc_VolatilityExtVal", nLength); bInit = true; } nVolatilityExtVal = xVolatilityExtVal.getValue(0); if (nVolatilityExtVal == null) return; return nVolatilityExtVal; } var bSecondInit = false; var xClose = null; var xMaxC = null; var xMinC = null; var xMaxH = null; var xMinL = null; function Calc_VolatilityExtVal(nLength) { var nRes = 0; var i = 0; var SqrTime = Math.sqrt(253 / nLength); if (bSecondInit == false) { xClose = close(); xMaxC = upperDonchian(nLength, xClose); xMinC = lowerDonchian(nLength, xClose); xMaxH = upperDonchian(nLength); xMinL = lowerDonchian(nLength); bSecondInit = true; } if (xMaxC.getValue(0) == null) return; nRes = ((0.6 * Math.log(xMaxC.getValue(0) / xMinC.getValue(0)) * SqrTime) + (0.6 * Math.log(xMaxH.getValue(0) / xMinL.getValue(0)) * SqrTime)) * 0.5; if (nRes < 0) nRes = 0.0; if (nRes > 2.99) nRes = 2.99; return nRes; }