Proj Bandwith

ICE Data Services -


ProjBandwith.efs  EFSLibrary - Discussion Board
  

File Name: ProjBandwith.efs


Description:
This Indicator plots the Projected Bandwidth


Formula Parameters:
Length : 14

Notes:
Projection bands, a new method using trading bands, projects market
data forward along the data trend with the maxima and minima of the
projections defining the band. The method provides another means of
signaling potential changes for market direction relative to the trend.

This is an useful oscillator, the third component of the new method, the
projection bandwidth indicator which is computed as the width compared
with the average of the bands expressed as a percentage:
PB = 200 x (PU - PL)/(PU + PL)


Download File:
ProjBandwith.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:            This Indicator plots the Projected BandwidthVersion:            1.0  03/18/2009Formula Parameters:                     Default:    Length                              14 Notes:    Projection bands, a new method using trading bands, projects market     data forward along the data trend with the maxima and minima of the     projections defining the band. The method provides another means of     signaling potential changes for market direction relative to the trend.    This is an useful oscillator, the third component of the new method, the     projection bandwidth indicator which is computed as the width compared     with the average of the bands expressed as a percentage:    PB = 200 x (PU - PL)/(PU + PL)**********************************/var fpArray = new Array();var bInit = false;function preMain() {    setPriceStudy(false);    setShowTitleParameters(false);        setStudyTitle("Proj Bandwith");    setCursorLabelName("PB");    askForInput();    var x=0;    fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);	with(fpArray[x++]){        setLowerLimit(1);		        setDefault(14);    }}var xPB = null;function main(Length) {var nState = getBarState();var nPB = 0;    if (nState == BARSTATE_ALLBARS) {        if (Length == null) Length = 14;    }        if (bInit == false) {        xPB = efsInternal("Calc_PB", Length);        bInit = true;    }    nPB = xPB.getValue(0);    if (getCurrentBarCount() < Length || nPB == null) return;    return nPB;}function Calc_PB(Length) {    var SL = 0;    var SH = 0;    var SumBars = Length * (Length - 1) * 0.5;    var SumSqrBars = (Length - 1) * Length * (2 * Length - 1) / 6;    var Sum1_1 = 0;    var Sum1_2 = 0;    var SumY1 = 0;    var SumY2 = 0;    var i = 0;    for (i = 0; i < Length; i++)  {        Sum1_1 += i * low(-i);        Sum1_2 += i * high(-i);        SumY1 += low(-i);        SumY2 += high(-i);    }    var Sum2_1 = SumBars * SumY1;    var Sum2_2 = SumBars * SumY2;    var Num1_1 = Length * Sum1_1 - Sum2_1;    var Num1_2 = Length * Sum1_2 - Sum2_2;    var Num2 = SumBars * SumBars - Length * SumSqrBars;    SL = Num1_1 / Num2;    SH = Num1_2 / Num2;    var Value2 = 0;    var Value3 = 0;    var PL = 0;    var PU = 0;    for (i = 1; i <= Length; i++) {        Value2=low(-i + 1) + (SL * i - 1);        Value3=high(-i + 1) + (SH * i - 1);        if (i == 1) {            PL=Value2;            PU=Value3;        };        if (Value2 < PL) PL = Value2;        if (Value3 > PU) PU = Value3;    }    var PB=200 * (PU - PL) / (PU + PL);    return PB;}