getMonthlyOHLC.efs

ICE Data Services -

 

getMonthlyOHLC.efs    

File Name: getMonthlyOHLC.efs


Description:
Returns the Monthly OHLC data with the use of callFunction() and may be used with any interval less than monthly.

 

Formula Parameters:
sPriceSource: No Default value. Pass "Open" /"High"/"Low"/"Close" to callFunction()

 

Notes:
Save this formula to /eSignal/Formulas/OHLC/ and use this formula through the callFunction() function from your custom formulas to get the current week's OHLC prices.

Code Example:

function main() {
var vData = callFunction("/OHLC/getMonthlyOHLC.efs", "main", "High");
if (vData == null) return;
return vData;
}

Download File:
getMonthlyOHLC.efs



EFS Code:

/*****************************************************************
Provided By : eSignal. (c) Copyright 2003
*****************************************************************/

function preMain() {
}

/**
  sPriceSource will be "Open", "High", "Close", or "Low"
 
  This formula is for callFunction() calls from an 
    external formula.
    
    example:

    var vData = callFunction("/OHLC/getMonthlyOHLC.efs", "main", "High");    
    if (vData == null) return;
    return vData;

**/


var vSymbol;
var vInterval;

function main(sPriceSource) {
	if(sPriceSource == null) return;

  	var vBar;
	var vBarTime;
	var vAbsTime;
	var vIndex;

	var nState = getBarState();
	if(nState == BARSTATE_ALLBARS) {
		vSymbol = getSymbol();
		vInterval = getInterval();
		vSymbol += ",M";
	}

	if(vInterval == null) return;

	if(vInterval == "M") return;

    vBarTime = getValue("time");
    var vTime = new Date();
    if(vBarTime != null) {
        if (vTime.getYear() == vBarTime.getYear()) {
            vIndex = ((vTime.getMonth()+1 - vBarTime.getMonth()+1) * -1)+2;
        } else {
            vIndex = (((vTime.getMonth()+1 + ((vTime.getYear() - vBarTime.getYear()) * 12)) - vBarTime.getMonth()+1) * -1)+2;
        }
        if (vIndex != null) {
			vBar = getValueAbsolute(sPriceSource, vIndex, vSymbol);
			return vBar;
	    }
	}
	
	return;
}