/********************************************************* Alexis C. Montenegro © June 2005 Use and/or modify this code freely. If you redistribute it please include this and/or any other comment blocks and a description of any changes you make. **********************************************************/ var fpArray = new Array(); function preMain() { setPriceStudy(true); setStudyTitle("HiLo_firstXminutes"); setCursorLabelName("High", 0); setCursorLabelName("Low", 1); setPlotType(PLOTTYPE_FLATLINES,0); setPlotType(PLOTTYPE_FLATLINES,1); setDefaultBarFgColor(Color.blue,0); setDefaultBarFgColor(Color.red,1); var x=0; fpArray[x] = new FunctionParameter("xStart", FunctionParameter.NUMBER); with(fpArray[x++]){ setName("Start Time"); setLowerLimit(0); setDefault(930); } fpArray[x] = new FunctionParameter("xEnd", FunctionParameter.NUMBER); with(fpArray[x++]){ setName("End Time"); setLowerLimit(0); setDefault(1030); } fpArray[x] = new FunctionParameter("xInterval", FunctionParameter.NUMBER); with(fpArray[x++]){ setName("Ext Interval Used"); setLowerLimit(1); setDefault(5); } fpArray[x] = new FunctionParameter("xDisplay", FunctionParameter.STRING); with(fpArray[x++]){ setName("Display"); addOption("Show"); addOption("Hide"); setDefault("Show"); } } var bInit = false; var xRange = null; var xRangeH = null; var xRangeL = null; function main(xStart,xEnd,xInterval,xDisplay) { if(bInit==false){ xRange = efsInternal("calcOR",xStart,xEnd,xDisplay,inv(xInterval)); xRangeH = getSeries(xRange,0) xRangeL = getSeries(xRange,1) bInit=true; } return new Array(xRangeH,xRangeL); } var vFlag = true; var vFlag2 = true var vHigh = null; var vLow = null; var vClose = null; var vDay1 = null; var vDay2 = null; function calcOR(start,end,display,source){ if (getBarState() == BARSTATE_NEWBAR) { if (vDay1 == null) { vDay2 = getDay(0); } else { vDay2 = vDay1; } vDay1 = getDay(0); if (vDay1 != vDay2) { vHigh = null; vLow = null; vFlag = true; vFlag2 = false; } var vHour1 = (getHour()*100)+getMinute(); if(vHour1 >= start){ vFlag2=true; } var vHour = (getHour()*100)+getMinute(); if (vHour >= end) { vFlag = false; vFlag2=false; } } if (vFlag == true&&vFlag2==true) { if (vHigh == null) { vHigh = high(0); } if (vLow == null) { vLow = low(0); } vHigh = Math.max(high(0), vHigh); vLow = Math.min(low(0), vLow); } if(display=="Hide"){ if(vFlag==false&&vHigh!=null&&vLow!=null){ var vHigh2 = vHigh; var vLow2 = vLow; } }else if(display=="Show"){ var vHigh2 = vHigh; var vLow2 = vLow; } return new Array(vHigh2,vLow2); }