From 89a88644860b3035aaddb0ef7060377a50bd31cf Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 4 Dec 2020 15:01:01 +0100 Subject: [PATCH] New File for Modules --- Projects/ProjectsSchema.json | 6 ++++++ .../Low-Frequency-Trading/TradingProcess.js | 2 +- .../TS/Globals/ProcessModuleObjects.js | 17 +++++++++++++++++ TaskServer/ProcessInstance.js | 9 +++++++-- 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 Projects/Superalgos/TS/Globals/ProcessModuleObjects.js diff --git a/Projects/ProjectsSchema.json b/Projects/ProjectsSchema.json index 7422889c4..2a9f0ca59 100644 --- a/Projects/ProjectsSchema.json +++ b/Projects/ProjectsSchema.json @@ -356,6 +356,12 @@ "functionName": "newSuperalgosGlobalsProcessConstants", "fileName": "ProcessConstants.js" }, + { + "name": "Process Module Objects", + "propertyName": "processModuleObjects", + "functionName": "newSuperalgosGlobalsModuleObjects", + "fileName": "ProcessModuleObjects.js" + }, { "name": "Task Variables", "propertyName": "taskVariables", diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingProcess.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingProcess.js index 3bf7cddb7..91ac8ae2b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingProcess.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingProcess.js @@ -18,7 +18,7 @@ let dataFiles = new Map(); let multiPeriodDataFiles = new Map(); let fileStorage = TS.projects.superalgos.taskModules.fileStorage.newFileStorage(processIndex); - let tradingEngineModuleObject = TS.projects.superalgos.botModules.tradingEngine.newSuperalgosBotModulesTradingEngine(processIndex) + TS.projects.superalgos.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).TRADING_ENGINE = TS.projects.superalgos.botModules.tradingEngine.newSuperalgosBotModulesTradingEngine(processIndex) let tradingOutputModuleObject = TS.projects.superalgos.botModules.tradingOutput.newSuperalgosBotModulesTradingOutput(processIndex, tradingEngineModuleObject) return thisObject; diff --git a/Projects/Superalgos/TS/Globals/ProcessModuleObjects.js b/Projects/Superalgos/TS/Globals/ProcessModuleObjects.js new file mode 100644 index 000000000..da4f716ac --- /dev/null +++ b/Projects/Superalgos/TS/Globals/ProcessModuleObjects.js @@ -0,0 +1,17 @@ +exports.newSuperalgosGlobalsModuleObjects = function () { + /* + Here we store Module Objects at the process level, so that anyone can access their functionality. + */ + let thisObject = { + MODULE_OBJECTS_BY_PROCESS_INDEX_MAP: new Map() + } + + /* + MODULE_OBJECTS_BY_PROCESS_INDEX_MAP + + This is a list of possible Module Objects you might find here. + + TRADING_ENGINE This is the module that manages the Trading Engine data structure. + */ + return thisObject +} \ No newline at end of file diff --git a/TaskServer/ProcessInstance.js b/TaskServer/ProcessInstance.js index 30589a26c..75863e55e 100644 --- a/TaskServer/ProcessInstance.js +++ b/TaskServer/ProcessInstance.js @@ -42,6 +42,11 @@ */ let CONSTANTS_BY_PROCESS_INDEX = {} TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.set(processIndex, CONSTANTS_BY_PROCESS_INDEX) + /* + We also need to initialize this here. + */ + let MODULE_OBJECTS_BY_PROCESS_INDEX = {} + TS.projects.superalgos.globals.processModuleObjects.MODULE_OBJECTS_BY_PROCESS_INDEX_MAP.set(processIndex, MODULE_OBJECTS_BY_PROCESS_INDEX) /* File Path Root */ TS.projects.superalgos.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).FILE_PATH_ROOT = @@ -75,8 +80,8 @@ if (botModuleDefinition.botType === TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.type) { try { TS.projects.superalgos.globals.processVariables.TOTAL_PROCESS_INSTANCES_CREATED++ - let project = TS.projects[TS.projects.superalgos.globals.taskConstants.PROJECT_DEFINITION_NODE.config.codeName.toLowerCase()] - let botModule = project.botModules[botModuleDefinition.propertyName] + let project = TS.projects[TS.projects.superalgos.globals.taskConstants.PROJECT_DEFINITION_NODE.config.codeName.toLowerCase()] + let botModule = project.botModules[botModuleDefinition.propertyName] let moduleFunction = botModule[botModuleDefinition.functionName] botModuleObject = moduleFunction(processIndex) botModuleObject.initialize(onInitializeReady);