2010 Apr: Modified Price-Volume Trend Indicator

ICE Data Services -


Modified_PVT.efs  EFSLibrary - Discussion Board
  

File Name: Modified_PVT.efs


Description:
Modified Price-Volume Trend Indicator


Formula Parameters:
Level : 0
Scale : 1

Notes:
The related article is copyrighted material. If you are not a subscriber
of Stocks & Commodities, please visit www.traders.com.


Download File:
Modified_PVT.efs




EFS Code:




/*********************************Provided By:      eSignal (Copyright c eSignal), a division of Interactive Data     Corporation. 2010. 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:            Modified Price-Volume Trend Indicator    Version:            1.00  02/09/2010Formula Parameters:                     Default:    Level                               0    Scale                               1    Notes:    The related article is copyrighted material. If you are not a subscriber    of Stocks & Commodities, please visit www.traders.com.**********************************/var fpArray = new Array();var bInit = false;var bVersion = null;function preMain() {    setPriceStudy(false);    setShowCursorLabel(true);    setShowTitleParameters(false);    setStudyTitle("Modified PVT");    setCursorLabelName("MPVT", 0);    setDefaultBarFgColor(Color.red, 0);    setPlotType(PLOTTYPE_LINE, 0);    setDefaultBarThickness(2, 0);    var x=0;    fpArray[x] = new FunctionParameter("Level", FunctionParameter.NUMBER);	with(fpArray[x++]){        setName("Level");        setLowerLimit(-1000);        setUpperLimit(10000);		        setDefault(0);    }        fpArray[x] = new FunctionParameter("Scale", FunctionParameter.NUMBER);	with(fpArray[x++]){        setName("Scale");        setLowerLimit(0.0001);		        setUpperLimit(100000);		        setDefault(1);    }        }var xMPVT = null;function main(Level, Scale) {var nBarState = getBarState();var nMPVT = 0;    if (bVersion == null) bVersion = verify();    if (bVersion == false) return;       if (nBarState == BARSTATE_ALLBARS) {        if (Level == null) Level = 0;        if (Scale == null) Scale = 1;    }        if (!bInit) {         xMPVT = efsInternal("Calc_MPVT", Level, Scale);        bInit = true;     }    nMPVT = xMPVT.getValue(0);    if (nMPVT == null) return;    return nMPVT;}var bSecondInit = false;var xCumPVT = 0;function Calc_MPVT(Level, Scale) {var nRes = 0;var nCumPVT = 0;    if (!bSecondInit) {        xCumPVT = efsInternal("Calc_CumPVT");        bSecondInit = true;    }    nCumPVT = xCumPVT.getValue(0);    if (nCumPVT == null) return;    nRes = Level + Scale * nCumPVT;    return nRes;}var bThirdInit = false;var xOHLC4 = null;var xV = null;function Calc_CumPVT() {var nRes = 0;var nRef = 0;var nOHLC4 = 0;var nOHLC4_1 = 0;var rV = 0;    if (!bThirdInit) {        xOHLC4 = ohlc4();        xV = volume();        X = obv();        bThirdInit = true;    }    nOHLC4 = xOHLC4.getValue(0);    nOHLC4_1 = xOHLC4.getValue(-1);    nRef = ref(-1);    if (nOHLC4_1 == null) return;    rV = xV.getValue(0) / 50000;    nRes = nRef + (rV * (nOHLC4 - nOHLC4_1) / nOHLC4_1);    return nRes;}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;}