VPCI.efs, VPCI_Smoothed.efs, VPCI_Bollinger.efs
EFSLibrary - Discussion Board
File Name:
- VPCI.efs
- VPCI_Smoothed.efs
- VPCI_Bollinger.efs
Description:
These studies are based on the July 2007 article, Between Price And Volume, by Buff Dormeier.
Formula Parameters:
VPCI.efs
- Long-term Period: 50
- Short-term Period: 10
- Color: blue
- Thickness: 2
VPCI_Smoothed.efs
- Long-term Period: 50
- Short-term Period: 10
- VPCI Color: blue
- VPCI MA Color: grey
- Thickness: 2
VPCI_Bollinger.efs
- Long-term Period: 50
- Short-term Period: 10
- Bollinger Period: 10
- Bollinger Stdev: 2
- VPCI Color: blue
- Bollinger Band Color: red
- Thickness: 2
Notes:
The related article is copyrighted material. If you are not a subscriber of Stocks & Commodities, please visit www.traders.com.
Download File:
VPCI.efs
VPCI_Smoothed.efs
VPCI_Bollinger.efs
EFS Code:
VPCI.efs
/*************************************** Provided By : eSignal (Copyright © eSignal), a division of Interactive Data Corporation. 2007. All rights reserved. This sample eSignal Formula Script (EFS) is for educational purposes only and may be modified and saved under a new filename. 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: Between Price And Volume by Buff Dormeier Version 1.0 5/08/2007 Notes: * July 2007 Issue of Stocks and Commodities Magazine * Study requires version 8.0 or later. Formula Parameters: Default: Long-term Period 50 Short-term Period 10 Color blue Thickness 2 ***************************************/ function preMain() { setStudyTitle("VPCI "); setShowTitleParameters(false); setCursorLabelName("VPCI", 0); addBand(0, PS_SOLID, 2, Color.grey, "zero"); var fp1 = new FunctionParameter("nLongP", FunctionParameter.NUMBER); fp1.setName("Long-term Period"); fp1.setLowerLimit(1); fp1.setDefault(50); var fp2 = new FunctionParameter("nShortP", FunctionParameter.NUMBER); fp2.setName("Short-term Period"); fp2.setLowerLimit(1); fp2.setDefault(10); var fp3 = new FunctionParameter("cColor", FunctionParameter.COLOR); fp3.setName("Color"); fp3.setDefault(Color.blue); var fp4 = new FunctionParameter("nThick", FunctionParameter.NUMBER); fp4.setName("Thickness"); fp4.setLowerLimit(1); fp4.setDefault(2); } // Global Variables var bVersion = null; // Version flag var bInit = false; // Initialization flag var xVPC = null; var xVPR = null; var xVM = null; var nVPCI = null; function main(nLongP, nShortP, cColor, nThick) { if (bVersion == null) bVersion = verify(); if (bVersion == false) return; //Initialization if (bInit == false) { setDefaultBarFgColor(cColor, 0); setDefaultBarThickness(nThick, 0); xVPC = efsInternal("calcVPC", nLongP); xVPR = efsInternal("calcVPR", nShortP); xVM = efsInternal("calcVM", nLongP, nShortP); bInit = true; } var nState = getBarState(); var nIndex = getCurrentBarIndex(); var nVPC = xVPC.getValue(0); var nVPR = xVPR.getValue(0); var nVM = xVM.getValue(0); if (nVPC == null || nVPR == null || nVM == null) return; nVPCI = nVPC * nVPR * nVM; setBarBgColor(Color.cyan, 0, 0, Infinity*1); return nVPCI; } function calcVPC(n) { var nVwma = vwma(n, 0); var nSma = sma(n, 0); if (nVwma == null || nSma == null) return; return (nVwma - nSma); } function calcVPR(n) { var nVwma = vwma(n, 0); var nSma = sma(n, 0); if (nVwma == null || nSma == null) return; return (nVwma / nSma); } function calcVM(nL, nS) { var nVolSma1 = sma(nL, volume(), 0); // long term var nVolSma2 = sma(nS, volume(), 0); // short term if (nVolSma1 == null || nVolSma2 == null) return; return (nVolSma2 / nVolSma1); } function verify() { var b = false; if (getBuildNumber() < 779) { drawTextAbsolute(5, 35, "This study requires version 8.0 or later.", Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT, null, 13, "error"); drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp", Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT, null, 13, "upgrade"); return b; } else { b = true; } return b; }
VPCI_Smoothed.efs
/*************************************** Provided By: eSignal (Copyright © eSignal), a division of Interactive Data Corporation. 2007. All rights reserved. This sample eSignal Formula Script (EFS) is for educational purposes only and may be modified and saved under a new filename. 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: Between Price And Volume by Buff Dormeier Version 1.0 5/08/2007 Notes: * July 2007 Issue of Stocks and Commodities Magazine * Study requires version 8.0 or later. Formula Parameters: Default: Long-term Period 50 Short-term Period 10 VPCI Color blue VPCI MA Color grey Thickness 2 ***************************************/ function preMain() { setStudyTitle("VWMA of VPCI "); setShowTitleParameters(false); setCursorLabelName("VPCI", 0); setCursorLabelName("VPCI VWMA", 1); var fp1 = new FunctionParameter("nLongP", FunctionParameter.NUMBER); fp1.setName("Long-term Period"); fp1.setLowerLimit(1); fp1.setDefault(50); var fp2 = new FunctionParameter("nShortP", FunctionParameter.NUMBER); fp2.setName("Short-term Period"); fp2.setLowerLimit(1); fp2.setDefault(10); var fp3 = new FunctionParameter("cColor", FunctionParameter.COLOR); fp3.setName("VPCI Color"); fp3.setDefault(Color.blue); var fp3a = new FunctionParameter("cColor2", FunctionParameter.COLOR); fp3a.setName("VPCI MA Color"); fp3a.setDefault(Color.grey); var fp4 = new FunctionParameter("nThick", FunctionParameter.NUMBER); fp4.setName("Thickness"); fp4.setLowerLimit(1); fp4.setDefault(2); } // Global Variables var bVersion = null; // Version flag var bInit = false; // Initialization flag var xVPC = null; var xVPR = null; var xVM = null; var xVPCI = null; var xVPCI_MA = null; function main(nLongP, nShortP, cColor, cColor2, nThick) { if (bVersion == null) bVersion = verify(); if (bVersion == false) return; //Initialization if (bInit == false) { setDefaultBarFgColor(cColor, 0); setDefaultBarThickness(nThick, 0); setDefaultBarFgColor(cColor2, 1); setDefaultBarThickness(nThick, 1); xVPC = efsInternal("calcVPC", nLongP); xVPR = efsInternal("calcVPR", nShortP); xVM = efsInternal("calcVM", nLongP, nShortP); xVPCI = efsInternal("calcVPCI", nLongP, nShortP, xVPC, xVPR, xVM); xVPCI_MA = efsInternal("calcVWMA", nShortP, xVPCI); bInit = true; } var nState = getBarState(); var nVPCI = xVPCI.getValue(0); var nVPCI_MA = xVPCI_MA.getValue(0); if (nVPCI == null || nVPCI_MA == null) return; return new Array(nVPCI, nVPCI_MA); } function calcVWMA(n, x) { var nSum = 0; var nTotVol = 0; if (x.getValue(-n) == null) return; for (var i = 0; i < n; i++) { nSum += x.getValue(-i) * volume(-i); nTotVol += volume(-i); } return (nSum / nTotVol); } function calcVPCI(nL, nS, xVPC, xVPR, xVM) { var nState = getBarState(); var nVPC = xVPC.getValue(0); var nVPR = xVPR.getValue(0); var nVM = xVM.getValue(0); if (nVPC == null || nVPR == null || nVM == null) return; return (nVPC * nVPR * nVM); } function calcVPC(n) { var nVwma = vwma(n, 0); var nSma = sma(n, 0); if (nVwma == null || nSma == null) return; return (nVwma - nSma); } function calcVPR(n) { var nVwma = vwma(n, 0); var nSma = sma(n, 0); if (nVwma == null || nSma == null) return; return (nVwma / nSma); } function calcVM(nL, nS) { var nVolSma1 = sma(nL, volume(), 0); // long term var nVolSma2 = sma(nS, volume(), 0); // short term if (nVolSma1 == null || nVolSma2 == null) return; return (nVolSma2 / nVolSma1); } function verify() { var b = false; if (getBuildNumber() < 779) { drawTextAbsolute(5, 35, "This study requires version 8.0 or later.", Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT, null, 13, "error"); drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp", Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT, null, 13, "upgrade"); return b; } else { b = true; } return b; }
VPCI_Bollinger.efs
/*************************************** Provided By: eSignal (Copyright © eSignal), a division of Interactive Data Corporation. 2007. All rights reserved. This sample eSignal Formula Script (EFS) is for educational purposes only and may be modified and saved under a new filename. 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: Between Price And Volume by Buff Dormeier Version 1.0 5/08/2007 Notes: * July 2007 Issue of Stocks and Commodities Magazine * Study requires version 8.0 or later. Formula Parameters: Default: Long-term Period 50 Short-term Period 10 Bollinger Period 10 Bollinger Stdev 2 VPCI Color blue Bollinger Band Color red Thickness 2 ***************************************/ function preMain() { setStudyTitle("VPCI with Bollinger Bands"); setShowTitleParameters(false); setCursorLabelName("Upper BB", 0); setCursorLabelName("Middle BB", 1); setCursorLabelName("Lower BB", 2); setCursorLabelName("VPCI", 3); var fp1 = new FunctionParameter("nLongP", FunctionParameter.NUMBER); fp1.setName("Long-term Period"); fp1.setLowerLimit(1); fp1.setDefault(50); var fp2 = new FunctionParameter("nShortP", FunctionParameter.NUMBER); fp2.setName("Short-term Period"); fp2.setLowerLimit(1); fp2.setDefault(10); var fp2a = new FunctionParameter("nBBP", FunctionParameter.NUMBER); fp2a.setName("Bollinger Period"); fp2a.setLowerLimit(1); fp2a.setDefault(10); var fp2b = new FunctionParameter("nStdev", FunctionParameter.NUMBER); fp2b.setName("Bollinger Stdev"); fp2b.setLowerLimit(1); fp2b.setDefault(2); var fp3 = new FunctionParameter("cColor", FunctionParameter.COLOR); fp3.setName("VPCI Color"); fp3.setDefault(Color.blue); var fp3a = new FunctionParameter("cColor2", FunctionParameter.COLOR); fp3a.setName("Bollinger Bands Color"); fp3a.setDefault(Color.red); var fp4 = new FunctionParameter("nThick", FunctionParameter.NUMBER); fp4.setName("Thickness"); fp4.setLowerLimit(1); fp4.setDefault(2); } // Global Variables var bVersion = null; // Version flag var bInit = false; // Initialization flag var xVPC = null; var xVPR = null; var xVM = null; var xVPCI = null; var xUpperBB = null; var xMiddleBB = null; var xLowerBB = null; function main(nLongP, nShortP, nBBP, nStdev, cColor, cColor2, nThick) { if (bVersion == null) bVersion = verify(); if (bVersion == false) return; //Initialization if (bInit == false) { setDefaultBarFgColor(cColor2, 0); setDefaultBarFgColor(cColor2, 1); setDefaultBarFgColor(cColor2, 2); setDefaultBarFgColor(cColor, 3); setDefaultBarThickness(nThick, 0); setDefaultBarThickness(nThick, 1); setDefaultBarThickness(nThick, 2); setDefaultBarThickness(nThick, 3); xVPC = efsInternal("calcVPC", nLongP); xVPR = efsInternal("calcVPR", nShortP); xVM = efsInternal("calcVM", nLongP, nShortP); xVPCI = efsInternal("calcVPCI", nLongP, nShortP, xVPC, xVPR, xVM); xUpperBB = upperBB(nBBP, nStdev, sma(1, xVPCI)); xMiddleBB = middleBB(nBBP, nStdev, sma(1, xVPCI)); xLowerBB = lowerBB(nBBP, nStdev, sma(1, xVPCI)); bInit = true; } //return; var nState = getBarState(); var nVPCI = xVPCI.getValue(0); var nUpper = xUpperBB.getValue(0); var nMiddle = xMiddleBB.getValue(0); var nLower = xLowerBB.getValue(0); if (nVPCI == null || nUpper == null || nMiddle == null || nLower == null) return; return new Array(nUpper, nMiddle, nLower, nVPCI); } function calcVPCI(nL, nS, xVPC, xVPR, xVM) { var nState = getBarState(); var nVPC = xVPC.getValue(0); var nVPR = xVPR.getValue(0); var nVM = xVM.getValue(0); if (nVPC == null || nVPR == null || nVM == null) return; return (nVPC * nVPR * nVM); } function calcVPC(n) { var nVwma = vwma(n, 0); var nSma = sma(n, 0); if (nVwma == null || nSma == null) return; return (nVwma - nSma); } function calcVPR(n) { var nVwma = vwma(n, 0); var nSma = sma(n, 0); if (nVwma == null || nSma == null) return; return (nVwma / nSma); } function calcVM(nL, nS) { var nVolSma1 = sma(nL, volume(), 0); // long term var nVolSma2 = sma(nS, volume(), 0); // short term if (nVolSma1 == null || nVolSma2 == null) return; return (nVolSma2 / nVolSma1); } function verify() { var b = false; if (getBuildNumber() < 779) { drawTextAbsolute(5, 35, "This study requires version 8.0 or later.", Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT, null, 13, "error"); drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp", Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT, null, 13, "upgrade"); return b; } else { b = true; } return b; }