diff --git a/.vs/AACloud/v15/.suo b/.vs/AACloud/v15/.suo index 0dee02ef0..aebf99793 100644 Binary files a/.vs/AACloud/v15/.suo and b/.vs/AACloud/v15/.suo differ diff --git a/Extraction Bot Process Main Loop.js b/Extraction Bot Process Main Loop.js index f9b03944e..0be707e46 100644 --- a/Extraction Bot Process Main Loop.js +++ b/Extraction Bot Process Main Loop.js @@ -51,7 +51,17 @@ try { if (FULL_LOG === true) { logger.write("[INFO] run -> Entering function."); } - loop(); + let intervalHandle; + + if (bot.runAtFixedInterval === true) { + + intervalHandle = setInterval(loop, bot.fixedInterval); + + } else { + + loop(); + + } function loop() { @@ -252,6 +262,8 @@ if (shallWeStop() === true) { + if (bot.runAtFixedInterval === true) { intervalHandle.clearInterval();} + if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Stopping the Loop Gracefully. See you next time! :-)"); } callBackFunction(global.DEFAULT_OK_RESPONSE); return; @@ -262,8 +274,13 @@ switch (nextWaitTime) { case 'Normal': { - if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Restarting Loop in " + (processConfig.normalWaitTime / 1000) + " seconds."); } - setTimeout(loop, processConfig.normalWaitTime); + if (bot.runAtFixedInterval === true) { + if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Fixed Interval Normal exit point reached."); } + return; + } else { + if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Restarting Loop in " + (processConfig.normalWaitTime / 1000) + " seconds."); } + setTimeout(loop, processConfig.normalWaitTime); + } } break; case 'Retry': { @@ -272,13 +289,23 @@ } break; case 'Sleep': { - if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Restarting Loop in " + (processConfig.sleepWaitTime / 60000) + " minutes."); } - setTimeout(loop, processConfig.sleepWaitTime); + if (bot.runAtFixedInterval === true) { + if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Fixed Interval Sleep exit point reached."); } + return; + } else { + if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Restarting Loop in " + (processConfig.sleepWaitTime / 60000) + " minutes."); } + setTimeout(loop, processConfig.sleepWaitTime); + } } break; case 'Coma': { - if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Restarting Loop in " + (processConfig.comaWaitTime / 3600000) + " hours."); } - setTimeout(loop, processConfig.comaWaitTime); + if (bot.runAtFixedInterval === true) { + if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Fixed Interval Coma exit point reached."); } + return; + } else { + if (FULL_LOG === true) { logger.write("[INFO] run -> loopControl -> Restarting Loop in " + (processConfig.comaWaitTime / 3600000) + " hours."); } + setTimeout(loop, processConfig.comaWaitTime); + } } break; } diff --git a/Run.js b/Run.js index cf3c5e684..a3920f4f9 100644 --- a/Run.js +++ b/Run.js @@ -198,41 +198,44 @@ for (let p = 0; p < global.PLATFORM_CONFIG.executionList.length; p++) { /* We tesst each type of start Mode to get what to run and how. */ - if (processConfig.startMode.allMonths.run === "true") { + if (processConfig.startMode.allMonths !== undefined) { - if (FULL_LOG === true) { logger.write("[INFO] run -> allMonths start mode detected. "); } + if (processConfig.startMode.allMonths.run === "true") { - for (let year = processConfig.startMode.allMonths.maxYear; year >= processConfig.startMode.allMonths.minYear; year--) { + if (FULL_LOG === true) { logger.write("[INFO] run -> allMonths start mode detected. "); } - for (let month = 12; month > 0; month--) { + for (let year = processConfig.startMode.allMonths.maxYear; year >= processConfig.startMode.allMonths.minYear; year--) { - botConfig.debug = { - month: pad(month, 2), - year: pad(year, 4) - }; + for (let month = 12; month > 0; month--) { - let padMonth = pad(month,2) + botConfig.debug = { + month: pad(month, 2), + year: pad(year, 4) + }; - let newInstanceBotConfig = JSON.parse(JSON.stringify(botConfig)); + let padMonth = pad(month, 2) - let timeDelay = Math.random() * 10 * 1000; // We introduce a short delay so as to not overload the machine. - setTimeout(startProcess, timeDelay); + let newInstanceBotConfig = JSON.parse(JSON.stringify(botConfig)); - function startProcess() { + let timeDelay = Math.random() * 10 * 1000; // We introduce a short delay so as to not overload the machine. + setTimeout(startProcess, timeDelay); - if (FULL_LOG === true) { logger.write("[INFO] run -> startProcess -> Ready to start process."); } + function startProcess() { - switch (botConfig.type) { - case 'Extraction': { - runExtractionBot(newInstanceBotConfig, processConfig, padMonth, year); - break; - } - case 'Indicator': { - runIndicatorBot(newInstanceBotConfig, processConfig, padMonth, year); - break; - } - default: { - logger.write("[ERROR] run -> Unexpected bot type. -> botConfig.type = " + botConfig.type); + if (FULL_LOG === true) { logger.write("[INFO] run -> startProcess -> Ready to start process."); } + + switch (botConfig.type) { + case 'Extraction': { + runExtractionBot(newInstanceBotConfig, processConfig, padMonth, year); + break; + } + case 'Indicator': { + runIndicatorBot(newInstanceBotConfig, processConfig, padMonth, year); + break; + } + default: { + logger.write("[ERROR] run -> Unexpected bot type. -> botConfig.type = " + botConfig.type); + } } } } @@ -240,23 +243,49 @@ for (let p = 0; p < global.PLATFORM_CONFIG.executionList.length; p++) { } } - if (processConfig.startMode.oneMonth.run === "true") { + if (processConfig.startMode.oneMonth !== undefined) { - if (FULL_LOG === true) { logger.write("[INFO] run -> oneMonth start mode detected. "); } + if (processConfig.startMode.oneMonth.run === "true") { - startProcess(); + if (FULL_LOG === true) { logger.write("[INFO] run -> oneMonth start mode detected. "); } - function startProcess() { + startProcess(); - if (FULL_LOG === true) { logger.write("[INFO] run -> startProcess -> Ready to start process."); } + function startProcess() { - let month = pad(processConfig.startMode.oneMonth.month, 2); - let year = processConfig.startMode.oneMonth.year; + if (FULL_LOG === true) { logger.write("[INFO] run -> startProcess -> Ready to start process."); } - botConfig.debug = { - month: pad(month, 2), - year: pad(year, 4) - }; + let month = pad(processConfig.startMode.oneMonth.month, 2); + let year = processConfig.startMode.oneMonth.year; + + botConfig.debug = { + month: pad(month, 2), + year: pad(year, 4) + }; + + switch (botConfig.type) { + case 'Extraction': { + runExtractionBot(botConfig, processConfig, month, year); + break; + } + case 'Indicator': { + runIndicatorBot(botConfig, processConfig, month, year); + break; + } + default: { + logger.write("[ERROR] run -> Unexpected bot type. -> botConfig.type = " + botConfig.type); + } + } + } + } + } + + if (processConfig.startMode.noTime !== undefined) { + + if (processConfig.startMode.noTime.run === "true") { + + let month = pad((new Date()).getUTCMonth() + 1, 2); + let year = (new Date()).getUTCFullYear(); switch (botConfig.type) { case 'Extraction': { @@ -267,30 +296,37 @@ for (let p = 0; p < global.PLATFORM_CONFIG.executionList.length; p++) { runIndicatorBot(botConfig, processConfig, month, year); break; } - default: { - logger.write("[ERROR] run -> Unexpected bot type. -> botConfig.type = " + botConfig.type); + case 'Trading': { + runTradingBot(botConfig, processConfig); + break; } } } } - if (processConfig.startMode.noTime.run === "true") { + if (processConfig.startMode.fixedInterval !== undefined) { - let month = pad((new Date()).getUTCMonth() + 1, 2); - let year = (new Date()).getUTCFullYear(); + if (processConfig.startMode.fixedInterval.run === "true") { - switch (botConfig.type) { - case 'Extraction': { - runExtractionBot(botConfig, processConfig, month, year); - break; - } - case 'Indicator': { - runIndicatorBot(botConfig, processConfig, month, year); - break; - } - case 'Trading': { - runTradingBot(botConfig, processConfig); - break; + botConfig.runAtFixedInterval = true; + botConfig.fixedInterval = processConfig.startMode.fixedInterval.interval; + + let month = pad((new Date()).getUTCMonth() + 1, 2); + let year = (new Date()).getUTCFullYear(); + + switch (botConfig.type) { + case 'Extraction': { + runExtractionBot(botConfig, processConfig, month, year); + break; + } + case 'Indicator': { + runIndicatorBot(botConfig, processConfig, month, year); + break; + } + case 'Trading': { + runTradingBot(botConfig, processConfig); + break; + } } } } diff --git a/this.config.json b/this.config.json index 74522385e..87d26b9af 100644 --- a/this.config.json +++ b/this.config.json @@ -7,7 +7,7 @@ }, "executionList": [ { - "enabled": "true", + "enabled": "false", "botPath": "../Bots/AAMasters/AAMariam-Trading-Bot", "process": "Trading-Process" }, @@ -32,7 +32,7 @@ "process": "Poloniex-Hole-Fixing" }, { - "enabled": "false", + "enabled": "true", "botPath": "../Bots/AAMasters/AACharly-Extraction-Bot", "process": "Poloniex-Live-Trades" },