DateRange.efs
EFSLibrary - Discussion Board
File Name: DateRange.efs
Description:
Code example for restricting a formula from back testing or executing outside specified date range.
Formula Parameters:
- Start Month - 1
- Start Day - 1
- Start Year - 2004
- End Month - 2
- End Day - 31
- End Year - 2004
Notes:
After applying the study to an advanced chart, go to Edit Studies and end enter the Day, Month and Year for both the start and end dates.
Download File:
DateRange.efs
EFS Code:
/***************************************************************** Provided By : eSignal. (c) Copyright 2004 Restrict formula from back testing outside specified date range. Go to Edit Studies and end enter the Day, Month and Year for both the start and end dates. *****************************************************************/ function preMain() { setPriceStudy(true); setStudyTitle("Date Range"); setShowCursorLabel(false); var fp1 = new FunctionParameter("startM", FunctionParameter.NUMBER); fp1.setName("Start Month"); for (var i = 1; i <=12; ++i) { fp1.addOption(i); } fp1.setDefault(1); var fp2 = new FunctionParameter("startD", FunctionParameter.NUMBER); fp2.setName("Start Day"); for (var i = 1; i <=31; ++i) { fp2.addOption(i); } fp2.setDefault(1); var fp3 = new FunctionParameter("startY", FunctionParameter.NUMBER); fp3.setName("Start Year"); for (var i = 0; i < 10; ++i) { fp3.addOption(2004-i); } fp3.setDefault(2004); var fp4 = new FunctionParameter("endM", FunctionParameter.NUMBER); fp4.setName("End Month"); for (var i = 1; i <=12; ++i) { fp4.addOption(i); } fp4.setDefault(2); var fp5 = new FunctionParameter("endD", FunctionParameter.NUMBER); fp5.setName("End Day"); for (var i = 1; i <=31; ++i) { fp5.addOption(i); } fp5.setDefault(31); var fp6 = new FunctionParameter("endY", FunctionParameter.NUMBER); fp6.setName("End Year"); for (var i = 0; i < 10; ++i) { fp6.addOption(2004-i); } fp6.setDefault(2004); } function main(startM, startD, startY, endM, endD, endY) { var barMonth = getMonth(0); var barDay = getDay(0); var barYear = getYear(0); if (barYear < startY || barYear > endY) return; if (barMonth < startM || barMonth > endM) return; if (barDay < startD || barDay > endD) return; // Insert code for back testing here setBarBgColor(Color.grey); return; }