Schaff Trend

ICE Data Services -


SchaffTrend.efs  EFSLibrary - Discussion Board
  

File Name: SchaffTrend.efs


Description:
Schaff Trend


Formula Parameters:
MA Short : 23
MA Long : 50
Cycle : 10

Notes:

Download File:
SchaffTrend.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:            Schaff Trend        Version:            1.0  06/22/2009 Formula Parameters:                     Default:    MA Short                            23    MA Long                             50    Cycle                               10    Notes:    **********************************/var fpArray = new Array();var bInit = false;function preMain(){    setPriceStudy(false);    setShowCursorLabel(true);    setShowTitleParameters(false);    setStudyTitle("Schaff Trend");    setCursorLabelName("Schaff Trend", 0);    setDefaultBarFgColor(Color.green, 0);    setPlotType(PLOTTYPE_LINE, 0);    setDefaultBarThickness(2, 0);    setStudyMax(101);    setStudyMin(-1);    var x = 0;    fpArray[x] = new FunctionParameter("MA_Short", FunctionParameter.NUMBER);    with(fpArray[x++]) {        setLowerLimit(1);        setDefault(23);    }        fpArray[x] = new FunctionParameter("MA_Long", FunctionParameter.NUMBER);    with(fpArray[x++]) {        setLowerLimit(1);        setDefault(50);    }            fpArray[x] = new FunctionParameter("Cycle", FunctionParameter.NUMBER);    with(fpArray[x++]) {        setLowerLimit(1);        setDefault(10);    }            }var xMACD = null;var xMACDLLV = null;var xMACDHHV = null;function main(MA_Short, MA_Long, Cycle) {var nBarState = getBarState();var nRef = ref(-1);var nMCD = 0;var smconst = 0;var nST = 0;var nLLV = 0;var nHHV = 0;    if (nBarState == BARSTATE_ALLBARS) {        if(MA_Short == null) MA_Short = 23;        if(MA_Long == null) MA_Long = 50;        if(Cycle == null) Cycle = 10;	}	if (bInit == false) {        xMACD = macd(MA_Short, MA_Long, 1, hlc3());        xMACDLLV = lowerDonchian(Cycle, xMACD);        xMACDHHV = upperDonchian(Cycle, xMACD);        bInit = true;	}    smconst = 1 + Cycle / 2;    smconst = 1 / smconst;    nMCD = xMACD.getValue(0);    nLLV = xMACDLLV.getValue(0);    nHHV = xMACDHHV.getValue(0);    if (nMCD == null || nLLV == null) return;    nST = ((nMCD - nLLV) / (nHHV - nLLV)) * 100 + 0.01;    nST = smconst * (nST - nRef) + nRef;	return nST;}