 File Name: FVE_Katsanos.efs
Description: Finite Volume Elements (FVE)
Formula Parameters: Period : 22 Factor : 0.03
Notes: The FVE is a pure volume indicator. Unlike most of the other indicators (except OBV), price change doesn?t come into the equation for the FVE (price is not multiplied by volume), but is only used to determine whether money is flowing in or out of the stock. This is contrary to the current trend in the design of modern money flow indicators. The author decided against a pricevolume indicator for the following reasons:  A pure volume indicator has more power to contradict.  The number of buyers or sellers (which is assessed by volume) will be the same, regardless of the price fluctuation.  Pricevolume indicators tend to spike excessively at breakouts or breakdowns.
Download File: FVE_Katsanos.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: Finite Volume Elements (FVE) Version: 1.0 05/25/2009 Formula Parameters: Default: Period 22 Factor 0.03 Notes: The FVE is a pure volume indicator. Unlike most of the other indicators (except OBV), price change doesn?t come into the equation for the FVE (price is not multiplied by volume), but is only used to determine whether money is flowing in or out of the stock. This is contrary to the current trend in the design of modern money flow indicators. The author decided against a pricevolume indicator for the following reasons:  A pure volume indicator has more power to contradict.  The number of buyers or sellers (which is assessed by volume) will be the same, regardless of the price fluctuation.  Pricevolume indicators tend to spike excessively at breakouts or breakdowns.**********************************/var fpArray = new Array();var bInit = false;function preMain() { setStudyTitle("Finite Volume Elements"); setCursorLabelName("FVI",0); setDefaultBarFgColor(Color.red,0); var x = 0; fpArray[x] = new FunctionParameter("Period", FunctionParameter.NUMBER); with(fpArray[x++]) { setLowerLimit(1); setDefault(22); } fpArray[x] = new FunctionParameter("Factor", FunctionParameter.NUMBER); with(fpArray[x++]) { setLowerLimit(0.01); setDefault(0.3); } }var xFVE = null;function main(Period, Factor) {var nBarState = getBarState();var nFVE = 0; if (nBarState == BARSTATE_ALLBARS) { if (Period == null) Period = 22; if (Factor == null) Factor = 0.3; } if (bInit == false) { xFVE = efsInternal("Calc_FVE", Period, Factor); bInit = true; } nFVE = xFVE.getValue(0); if (nFVE == null) return; return nFVE;}var bSecondInit = false;var xhl2 = null;var xhlc3 = null;var xClose = null;var xVolume = null;var xSMAV = null;function Calc_FVE(Period, Factor) {var nRes = 0;var nMF = 0;var nVlm = 0var nClose = 0;var nVolumeMA = 0;var nRef = ref(1); if (bSecondInit == false) { xhl2 = hl2(); xhlc3 = hlc3(); xClose = close(); xVolume = volume(); xSMAV = sma(Period, xVolume); bSecondInit = true; } nVolumeMA = xSMAV.getValue(0) nClose = xClose.getValue(0); if (nVolumeMA == null) return; nMF = nClose  xhl2.getValue(0) + xhlc3.getValue(0)  xhlc3.getValue(1); if(nMF > Factor * nClose / 100) nVlm = xVolume.getValue(0); else if(nMF < Factor * nClose / 100) nVlm =  xVolume.getValue(0); else nVlm = 0; nRes = nRef + ((nVlm / nVolumeMA) / Period) * 100; return nRes;} 
