ICE Data Services -

Ichimoku.efs  EFSLibrary - Discussion Board

File Name: Ichimoku.efs

The Ichimoku study developed by Goichi Hosoda from Japan.

Formula Parameters:
Turning Line Periods: 9
Standard Line Periods: 26
Leading Span 2 Periods: 52
Displacement: 26
Ichimoku Cloud Style: Striped - [Stiped, Solid]
Ichimoku Could Colo: grey
Line Color: Turning Line: red
Line Color: Standard Line: blue
Line Color: Delayed Line: magenta
Line Color: Leading Span 1 Line: lightgrey
Line Color: Leading Span 2 Line: purple
Line Thickness: Turning Line: 1
Line Thickness: Standard Line: 1
Line Thickness: Delayed Line: 1
Line Thickness: Leading Span 1 Line: 1
Line Thickness: Leading Span 2 Line: 1

Bullish signals occur when the Turning Line crosses above the Standard Line, and bearish when crossing below. The shaded area between Leading Span 1 and 2, called the cloud, represents support and resistance. The Delayed Line is simply the close offset by 26 periods to give a quick comparison of today's price to that of 26 periods ago.

* Study has been updated to utilize EFS2 functionality
* Additional formula parameters added to match built-in study parameters found in FutureSource Workstation Ichimoku study.

Download File:

EFS Code:

/*********************************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 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.    Version: 2.0  (8/7/2007)Notes:    8/7/2007    * Study has been updated to utilize EFS2 functionality    * Additional formula parameters added to match built-in        study parameters found in FutureSource Workstation         Ichimoku study.**********************************/// Global Variablesvar xTurn  = null;var xStd   = null;var xLS1   = null;var xLS2   = null;var bInit = false;  // Initialization flagvar vCntr = 0;      // bar countervar vICntr = 0;     // line counter for drawn linesfunction preMain() {    setPriceStudy(true);    setStudyTitle("Ichimoku");    setCursorLabelName("Turning Line", 0);    setCursorLabelName("Standard Line", 1);    setCursorLabelName("Delayed Line", 2);    setCursorLabelName("Leading Span 1", 3);    setCursorLabelName("Leading Span 2", 4);    setDefaultBarFgColor(Color.red, 0);    setDefaultBarFgColor(Color.blue, 1);    setDefaultBarFgColor(Color.magenta, 2);    setDefaultBarFgColor(Color.lightgrey, 3);    setDefaultBarFgColor(Color.purple, 4);    setShowTitleParameters(false);        var fp1 = new FunctionParameter("nTrnPeriod", FunctionParameter.NUMBER);        fp1.setName("Turning Line Periods");        fp1.setLowerLimit(1);        fp1.setDefault(9);        var fp2 = new FunctionParameter("nStdPeriod", FunctionParameter.NUMBER);        fp2.setName("Standard Line Periods");        fp2.setLowerLimit(1);        fp2.setDefault(26);    var fp3 = new FunctionParameter("nLS2Period", FunctionParameter.NUMBER);        fp3.setName("Leading Span 2 Periods");        fp3.setLowerLimit(1);        fp3.setDefault(52);    var fp4 = new FunctionParameter("nOffset", FunctionParameter.NUMBER);        fp4.setName("Displacement");        fp4.setLowerLimit(0);        fp4.setDefault(26);    var fp5 = new FunctionParameter("sCloud", FunctionParameter.STRING);        fp5.setName("Ichimoku Cloud Style");        fp5.addOption("Striped");         fp5.addOption("Solid");        fp5.setDefault("Striped");    var fp6 = new FunctionParameter("cCloud", FunctionParameter.COLOR);        fp6.setName("Ichimoku Cloud Color");        fp6.setDefault(Color.grey);    var fp11 = new FunctionParameter("nColorTrn", FunctionParameter.COLOR);        fp11.setName("Line Color: Turning Line");        fp11.setDefault(Color.red);            var fp12 = new FunctionParameter("nColorStd", FunctionParameter.COLOR);        fp12.setName("Line Color: Standard Line");        fp12.setDefault(Color.blue);            var fp13 = new FunctionParameter("nColorDelay", FunctionParameter.COLOR);        fp13.setName("Line Color: Delayed Line");        fp13.setDefault(Color.magenta);            var fp14 = new FunctionParameter("nColorLS1", FunctionParameter.COLOR);        fp14.setName("Line Color: Leading Span 1 Line");        fp14.setDefault(Color.lightgrey);            var fp15 = new FunctionParameter("nColorLS2", FunctionParameter.COLOR);        fp15.setName("Line Color: Leading Span 2 Line");        fp15.setDefault(Color.purple);    var fp21 = new FunctionParameter("nThickTrn", FunctionParameter.NUMBER);        fp21.setName("Line Thickness: Turning Line");        fp21.setLowerLimit(1);        fp21.setDefault(1);            var fp22 = new FunctionParameter("nThickStd", FunctionParameter.NUMBER);        fp22.setName("Line Thickness: Standard Line");        fp22.setLowerLimit(1);        fp22.setDefault(1);            var fp23 = new FunctionParameter("nThickDelay", FunctionParameter.NUMBER);        fp23.setName("Line Thickness: Delayed Line");        fp23.setLowerLimit(1);        fp23.setDefault(1);            var fp24 = new FunctionParameter("nThickLS1", FunctionParameter.NUMBER);        fp24.setName("Line Thickness: Leading Span 1 Line");        fp24.setLowerLimit(1);        fp24.setDefault(1);            var fp25 = new FunctionParameter("nThickLS2", FunctionParameter.NUMBER);        fp25.setName("Line Thickness: Leading Span 2 Line");        fp25.setLowerLimit(1);        fp25.setDefault(1);}function main(nTrnPeriod, nStdPeriod, nLS2Period, nOffset, sCloud, cCloud,                nColorTrn, nColorStd, nColorDelay, nColorLS1, nColorLS2,                nThickTrn, nThickStd, nThickDelay, nThickLS1, nThickLS2) {    if (bInit == false) {        setDefaultBarFgColor(nColorTrn, 0);        setDefaultBarFgColor(nColorStd, 1);        setDefaultBarFgColor(nColorDelay, 2);        setDefaultBarFgColor(nColorLS1, 3);        setDefaultBarFgColor(nColorLS2, 4);        setDefaultBarThickness(nThickTrn, 0);        setDefaultBarThickness(nThickStd, 1);        setDefaultBarThickness(nThickDelay, 2);        setDefaultBarThickness(nThickLS1, 3);        setDefaultBarThickness(nThickLS2, 4);        xTurn = middleDonchian(nTrnPeriod);            xStd  = middleDonchian(nStdPeriod);            xLS1  = offsetSeries(efsInternal("calcLS1", xStd, xTurn), nOffset);        xLS2  = offsetSeries(middleDonchian(nLS2Period), nOffset);        bInit = true;    }            if(getBarState() == BARSTATE_NEWBAR){        vCntr++;        vICntr++;        if (vICntr > 350) vICntr = 0;    }        var nTurningLine = xTurn.getValue(0);    var nStandardLine = xStd.getValue(0);    var nLeadingSpan1 = xLS1.getValue(0);    var nLeadingSpan2 = xLS2.getValue(0);    if (nTurningLine == null || nStandardLine == null ||        nLeadingSpan1 == null || nLeadingSpan2 == null) return;        if (sCloud == "Striped") {        drawLineRelative(0, nLeadingSpan1, 0, nLeadingSpan2, PS_SOLID, 1, cCloud, "Cloud"+vICntr);    } else {        if(nLeadingSpan1>nLeadingSpan2)            setBarBgColor(cCloud, 0, nLeadingSpan2, nLeadingSpan1);        if(nLeadingSpan1 0) {        if(getBarState() == BARSTATE_NEWBAR){            var nNum = 1;        }else{            var nNum = 0;        }            if(getBuildNumber()>636){            setBar(Bar.Value,-nOffset,2,close(0));        }else{            setBar(Bar.Value,-nOffset+nNum,new Array(null,null,close(0),null,null));        }            return new Array(nTurningLine, nStandardLine, null, nLeadingSpan1, nLeadingSpan2);    } else {        return new Array(nTurningLine, nStandardLine, close(0), nLeadingSpan1, nLeadingSpan2);    }}function calcLS1( xSTD, xTRN ) {    return (xSTD.getValue(0) + xTRN.getValue(0)) / 2;}