/********************************************************* File Resides on PureTick.Com - Live Day Trading Futures Calls and Education Learning While Profiting - Check out our track record, updated bi-daily Moded by Dragon Breath..slightly.. just a tadd bit **********************************************************/ var fpArray = new Array(); function preMain() { setPriceStudy(true); setStudyTitle("Opening Range / AUP / ADOWN"); setCursorLabelName("Range High", 0); setCursorLabelName("Range Low", 1); setPlotType(PLOTTYPE_FLATLINES,0); setPlotType(PLOTTYPE_FLATLINES,1); setDefaultBarFgColor(Color.white,0); setDefaultBarFgColor(Color.white,1); setDefaultBarThickness(3,0); setDefaultBarThickness(3,1); setShowTitleParameters(false) 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(945); } fpArray[x] = new FunctionParameter("xInterval", FunctionParameter.NUMBER); with(fpArray[x++]){ setName("Ext Interval Used"); setLowerLimit(1); setDefault(3); } 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 vReturn=0; function main(xStart,xEnd,xInterval,xDisplay) { if ( getBarState() == BARSTATE_ALLBARS ) return; // Exit Script if we are loading still vReturn=0; if(bInit==false){ xRange = efsInternal("calcOR",xStart,xEnd,xDisplay,inv(xInterval)); bInit=true; } setBarBgColor(Color.RGB(60,60,60), 0, getSeries(xRange,1), getSeries(xRange,0) ) //if ( getBarState() == BARSTATE_NEWBAR && close() > getSeries(xRange,0) ) debugPrintln("We are over opening range"); //if ( getBarState() == BARSTATE_NEWBAR && close() < getSeries(xRange,1) ) debugPrintln("We are BELOW opening range"); return new Array(getSeries(xRange,0),getSeries(xRange,1)); } 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); }