2010 Sep: Getting Clear With Short-Term Swings

ICE Data Services -

ClearSwingLine.efs  
EFSLibrary - Discussion Board  

File Name: ClearSwingLine.efs

Description:
Getting Clear With Short-Term Swings

Formula Parameters:

  • Line or Color Bars : Line

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

Download File:
ClearSwingLine.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:        
    Getting Clear With Short-Term Swings
Version:            1.00  07/13/2010

Formula Parameters:                     Default:
    Line or Color Bars                  Line

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

**********************************/
var bInit = false;
var bVersion = null;

function preMain() {
    setPriceStudy(true);
    setShowTitleParameters(false);
    setStudyTitle("Getting Clear With Short-Term Swings");
    setShowCursorLabel(true, 0);
    setCursorLabelName("SwLine", 0);
    setDefaultBarFgColor(Color.cyan, 0);
    setPlotType(PLOTTYPE_INSTANTCOLORLINE, 0);
    setDefaultBarThickness(2, 0);
 }

var upsw = 0;
var xHigh = null;
var xLow = null;
var nHHigh = 0;
var nHLow = 0;
var nLHigh = 0;
var nLLow = 0;

function main() {
var nBarState = getBarState();
var nHigh = 0;
var nLow = 0;
var nResult = 0;
    if (bVersion == null) bVersion = verify();
    if (bVersion == false) return;   
    if (!bInit) { 
        xHigh = high();
        xLow = low();
        nHHigh = xHigh.getValue(0);
        nHLow = xLow.getValue(0);
        nLHigh = xHigh.getValue(0);
        nLLow = xLow.getValue(0);
        bInit = true; 
    }
        nHigh = xHigh.getValue(-1);
        nLow = xLow.getValue(-1);
        if (upsw == 1) {
            if (nHigh > nHHigh) nHHigh = nHigh;
            if (nLow > nHLow) nHLow = nLow;
            if (nHigh < nHLow && nBarState == BARSTATE_NEWBAR) {
                upsw = 0;
                nLLow = nLow;
                nLHigh = nHigh;
            }
        } else {
            if (nLow < nLLow) nLLow = nLow;
            if (nHigh < nLHigh) nLHigh = nHigh;
            if (nLow > nLHigh && nBarState == BARSTATE_NEWBAR) {
                upsw = 1;
                nHHigh = nHigh;
                nHLow = nLow;
            }
        }
    if(upsw == 1) {
        nResult = nHLow;
        setBarFgColor(Color.cyan);
    }
    if(upsw == 0)  {
        nResult = nLHigh;
        setBarFgColor(Color.magenta);
    }
    if (nResult == 0) return;
    return nResult;
}

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;
}