diff --git a/Session.js b/Session.js index f7524e5ce..056d01a56 100644 --- a/Session.js +++ b/Session.js @@ -161,41 +161,46 @@ } } } - if (bot.SESSION.parameters.timeRange.config.initialDatetime === undefined) { // if the initialDatetime is missing we create a default one. - bot.SESSION.parameters.timeRange.config.initialDatetime = (new Date()).valueOf() - } else { - bot.SESSION.parameters.timeRange.config.initialDatetime = (new Date(bot.SESSION.parameters.timeRange.config.initialDatetime)).valueOf() - } - if (bot.SESSION.parameters.timeRange.config.finalDatetime === undefined) { // if the finalDatetime is missing we create a default one. - bot.SESSION.parameters.timeRange.config.finalDatetime = (new Date()).valueOf() - } else { - bot.SESSION.parameters.timeRange.config.finalDatetime = (new Date(bot.SESSION.parameters.timeRange.config.finalDatetime)).valueOf() - } + /* Session Type Forced Values */ + let today = new Date((new Date()).valueOf()) + let aYearAgo = today - global.ONE_YEAR_IN_MILISECONDS + let aYearFromNow = today + global.ONE_YEAR_IN_MILISECONDS switch (bot.SESSION.type) { - case 'Live Trading Session': { - if (bot.SESSION.parameters.timeRange.config.finalDatetime.valueOf() > (new Date()).valueOf()) { - bot.SESSION.parameters.timeRange.config.finalDatetime = new Date() - } + case 'Backtesting Session': { + useDefaultDatetimes(aYearAgo, today) break } case 'Live Trading Session': { - bot.SESSION.parameters.timeRange.config.initialDatetime = new Date() - bot.SESSION.parameters.timeRange.config.finalDatetime = new Date((new Date()).valueOf() + global.ONE_YEAR_IN_MILISECONDS) + useDefaultDatetimes(today, aYearFromNow) break } case 'Fordward Testing Session': { - bot.SESSION.parameters.timeRange.config.initialDatetime = new Date() - bot.SESSION.parameters.timeRange.config.finalDatetime = new Date((new Date()).valueOf() + global.ONE_YEAR_IN_MILISECONDS) + useDefaultDatetimes(today, aYearFromNow) break } case 'Paper Trading Session': { - bot.SESSION.parameters.timeRange.config.initialDatetime = new Date() - bot.SESSION.parameters.timeRange.config.finalDatetime = new Date((new Date()).valueOf() + global.ONE_YEAR_IN_MILISECONDS) + useDefaultDatetimes(today, aYearFromNow) break } } + function useDefaultDatetimes(initialDefault, finalDefault) { + /* Initial Datetime */ + if (bot.SESSION.parameters.timeRange.config.initialDatetime === undefined) { + bot.SESSION.parameters.timeRange.config.initialDatetime = initialDefault + } else { + bot.SESSION.parameters.timeRange.config.initialDatetime = (new Date(bot.SESSION.parameters.timeRange.config.initialDatetime)).valueOf() + } + + /* Final Datetime */ + if (bot.SESSION.parameters.timeRange.config.finalDatetime === undefined) { + bot.SESSION.parameters.timeRange.config.finalDatetime = finalDefault + } else { + bot.SESSION.parameters.timeRange.config.finalDatetime = (new Date(bot.SESSION.parameters.timeRange.config.finalDatetime)).valueOf() + } + } + /* Time Frame */ if (bot.SESSION.parameters.timeFrame === undefined) { let errorMessage = "Session Parameters Node with no Time Frame."