Power Of Trend

ICE Data Services -


TrendPower.efs  EFSLibrary - Discussion Board
  

File Name: TrendPower.efs


Description:
Power Of Trend


Formula Parameters:
Length Fast : 4
Length Slow : 8

Notes:

Download File:
TrendPower.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:            Power Of Trend    Version:            1.0  11/03/2009 Formula Parameters:                     Default:    Length Fast                         4    Length Slow                         8    Notes:    **********************************/var fpArray = new Array();var bInit = false;function preMain(){    setPriceStudy(false);    setShowCursorLabel(false);    setShowTitleParameters(false);    setStudyTitle("Power Of Trend");    setCursorLabelName("ff", 0);    setPlotType(PLOTTYPE_HISTOGRAM, 0);    setDefaultBarFgColor(Color.lime, 0)    setDefaultBarThickness(5, 0);    setCursorLabelName("vk", 1);    setPlotType(PLOTTYPE_HISTOGRAM, 1);    setDefaultBarFgColor(Color.blue, 1);    setDefaultBarThickness(5, 1);    setCursorLabelName("vd", 2);    setPlotType(PLOTTYPE_HISTOGRAM, 2);    setDefaultBarFgColor(Color.red, 2);    setDefaultBarThickness(5, 2);    setCursorLabelName("vj", 3);    setPlotType(PLOTTYPE_HISTOGRAM, 3);    setDefaultBarFgColor(Color.green, 3);    setDefaultBarThickness(5, 3);    var x = 0;    fpArray[x] = new FunctionParameter("LengthFast", FunctionParameter.NUMBER);    with(fpArray[x++]) {        setName("Length Fast")        setLowerLimit(1);        setDefault(4);    }        fpArray[x] = new FunctionParameter("LengthSlow", FunctionParameter.NUMBER);    with(fpArray[x++]) {        setName("Length Slow")        setLowerLimit(1);        setDefault(8);    }        }var xMAFast = null;var xMASlow = null;var xVTS = null;function main(LengthFast, LengthSlow) {var nBarState = getBarState();var vv = 0;var ff = 0;var vk = 0;var vd = 0;var vj = 0;    if (nBarState == BARSTATE_ALLBARS) {        if(LengthFast == null) LengthFast = 4;        if(LengthSlow == null) LengthSlow = 8;	}	if(LengthSlow <= LengthFast) LengthSlow = LengthFast + 1;	if (bInit == false) {        xMAFast = wma(LengthFast);        xMASlow = wma(LengthSlow);        xVTS = efsInternal("Calc_VTS", LengthFast, LengthSlow);        addBand(0, PS_SOLID, 1, Color.black, "Zero");	        bInit = true;	}    f0 = xMAFast.getValue(0);    f1 = xMASlow.getValue(0);    vv = xVTS.getValue(0);    if (f1 == null || vv == null) return;    ff = f0 - f1;              vk = (vv + ff) / 2;    vd = (vv / 2);               vj = (ff - vd);    return new Array(ff, vk, vd, vj);}var bSecondInit = false;var xOHLC4 = null;function Calc_VTS(LengthFast, LengthSlow) {var nRes = 0;var i = 0;var j = 0;var vts = 0;var vtsCurr = 0;var v0 = 0;var v1 = 0;    if (bSecondInit == false) {        xOHLC4 = ohlc4();        bSecondInit = true;    }    if (xOHLC4.getValue(-LengthSlow) == null) return;    for (i = 0; i <= LengthSlow; i++) {              vtsCurr = 0;        if (i != 0) {            for (j = 1; j <= i; j++) {                vtsCurr += xOHLC4.getValue(-j);            }            vtsCurr = vtsCurr / i;        }         vts = vts + vtsCurr;        if(i == LengthFast) v0 = vts / LengthFast;        if(i == LengthSlow) v1 = vts / LengthSlow;                      }    nRes = v0 - v1;    return nRes;}