diff --git a/Projects/Superalgos/Function-Libraries/ActionSwitch.js b/Projects/Superalgos/Function-Libraries/ActionSwitch.js index 9b9827128..15eaca669 100644 --- a/Projects/Superalgos/Function-Libraries/ActionSwitch.js +++ b/Projects/Superalgos/Function-Libraries/ActionSwitch.js @@ -21,7 +21,7 @@ function newSuperalgosActionSwitch() { let functionLibraryTaskFunctions = newTaskFunctions() let functionLibrarySessionFunctions = newSessionFunctions() let functionLibraryCryptoEcosystemFunctions = newCryptoEcosystemFunctions() - let functionLibraryDataMineFunctions = newDataMineFunctions() + let functionLibraryMineFunctions = newMineFunctions() let functionLibraryDataStorageFunctions = newDataStorageFunctions() let functionLibraryChartingSpaceFunctions = newChartingSpaceFunctions() let functionLibraryPluginsFunctions = newPluginsFunctions() @@ -44,7 +44,7 @@ function newSuperalgosActionSwitch() { functionLibraryTaskFunctions = undefined functionLibrarySessionFunctions = undefined functionLibraryCryptoEcosystemFunctions = undefined - functionLibraryDataMineFunctions = undefined + functionLibraryMineFunctions = undefined functionLibraryDataStorageFunctions = undefined functionLibraryChartingSpaceFunctions = undefined functionLibraryPluginsFunctions = undefined @@ -124,7 +124,7 @@ function newSuperalgosActionSwitch() { break case 'Copy Node Type': { - let value = action.node.type + let value = action.node.type UI.projects.superalgos.utilities.clipboard.copyTextToClipboard(value) @@ -251,6 +251,16 @@ function newSuperalgosActionSwitch() { functionLibraryTaskFunctions.stopAllExchangeTradingTasks(action.node, functionLibraryProtocolNode) } break + case 'Run All Exchange Learning Tasks': + { + functionLibraryTaskFunctions.runAllExchangeLearningTasks(action.node, functionLibraryProtocolNode) + } + break + case 'Stop All Exchange Learning Tasks': + { + functionLibraryTaskFunctions.stopAllExchangeLearningTasks(action.node, functionLibraryProtocolNode) + } + break case 'Run All Market Data Tasks': { functionLibraryTaskFunctions.runAllMarketDataTasks(action.node, functionLibraryProtocolNode) @@ -271,6 +281,16 @@ function newSuperalgosActionSwitch() { functionLibraryTaskFunctions.stopAllMarketTradingTasks(action.node, functionLibraryProtocolNode) } break + case 'Run All Market Learning Tasks': + { + functionLibraryTaskFunctions.runAllMarketLearningTasks(action.node, functionLibraryProtocolNode) + } + break + case 'Stop All Market Learning Tasks': + { + functionLibraryTaskFunctions.stopAllMarketLearningTasks(action.node, functionLibraryProtocolNode) + } + break case 'Run All Data Mine Tasks': { functionLibraryTaskFunctions.runAllDataMineTasks(action.node, functionLibraryProtocolNode) @@ -291,6 +311,16 @@ function newSuperalgosActionSwitch() { functionLibraryTaskFunctions.stopAllTradingMineTasks(action.node, functionLibraryProtocolNode) } break + case 'Run All Intel Mine Tasks': + { + functionLibraryTaskFunctions.runAllIntelMineTasks(action.node, functionLibraryProtocolNode) + } + break + case 'Stop All Intel Mine Tasks': + { + functionLibraryTaskFunctions.stopAllIntelMineTasks(action.node, functionLibraryProtocolNode) + } + break case 'Add Missing Exchange Data Tasks': { functionLibraryTaskFunctions.addMissingExchangeDataTasks(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) @@ -306,6 +336,11 @@ function newSuperalgosActionSwitch() { functionLibraryTaskFunctions.addMissingDataMineTasks(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) } break + case 'Add Missing Intel Mine Tasks': + { + functionLibraryTaskFunctions.addMissingIntelMineTasks(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) + } + break case 'Add Missing Exchange Trading Tasks': { functionLibraryTaskFunctions.addMissingExchangeTradingTasks(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) @@ -321,6 +356,21 @@ function newSuperalgosActionSwitch() { functionLibraryTaskFunctions.addMissingTradingMineTasks(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) } break + case 'Add Missing Exchange Learning Tasks': + { + functionLibraryTaskFunctions.addMissingExchangeLearningTasks(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) + } + break + case 'Add Missing Market Learning Tasks': + { + functionLibraryTaskFunctions.addMissingMarketLearningTasks(action.node, functionLibraryUiObjectsFromNodes) + } + break + case 'Add Missing Intel Mine Tasks': + { + functionLibraryTaskFunctions.addMissingIntelMineTasks(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) + } + break case 'Add All Tasks': { functionLibraryTaskFunctions.addAllTasks(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) @@ -353,7 +403,7 @@ function newSuperalgosActionSwitch() { break case 'Add All Output Datasets': { - functionLibraryDataMineFunctions.addAllOutputDatasets(action.node, functionLibraryUiObjectsFromNodes) + functionLibraryMineFunctions.addAllOutputDatasets(action.node, functionLibraryUiObjectsFromNodes) } break case 'Add All Data Products': @@ -366,6 +416,11 @@ function newSuperalgosActionSwitch() { functionLibraryDataStorageFunctions.addAllDataMineProducts(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) } break + case 'Add All Intel Mine Products': + { + functionLibraryDataStorageFunctions.addAllIntelMineProducts(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) + } + break case 'Add All Trading Mine Products': { functionLibraryDataStorageFunctions.addAllTradingMineProducts(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) @@ -398,12 +453,12 @@ function newSuperalgosActionSwitch() { break case 'Add All Data Dependencies': { - functionLibraryDataMineFunctions.addAllDataDependencies(action.node, functionLibraryUiObjectsFromNodes) + functionLibraryMineFunctions.addAllDataDependencies(action.node, functionLibraryUiObjectsFromNodes) } break case 'Add All Data Mine Dependencies': { - functionLibraryDataMineFunctions.addAllDataMineDataDependencies(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) + functionLibraryMineFunctions.addAllDataMineDataDependencies(action.node, action.rootNodes, functionLibraryUiObjectsFromNodes) } break case 'Add All Mine Layers': diff --git a/Projects/Superalgos/Function-Libraries/DataStorageFunctions.js b/Projects/Superalgos/Function-Libraries/DataStorageFunctions.js index b1b42fd6b..08fa13d6f 100644 --- a/Projects/Superalgos/Function-Libraries/DataStorageFunctions.js +++ b/Projects/Superalgos/Function-Libraries/DataStorageFunctions.js @@ -3,6 +3,7 @@ function newDataStorageFunctions() { addAllDataProducts: addAllDataProducts, addAllDataMineProducts: addAllDataMineProducts, addAllTradingMineProducts: addAllTradingMineProducts, + addAllIntelMineProducts: addAllIntelMineProducts, addMissingSessionReferences: addMissingSessionReferences, addMissingMarketDataProducts: addMissingMarketDataProducts, addMissingMarketTradingProducts: addMissingMarketTradingProducts, @@ -84,6 +85,17 @@ function newDataStorageFunctions() { } } + function addAllIntelMineProducts(node, rootNodes, functionLibraryUiObjectsFromNodes) { + for (let i = 0; i < rootNodes.length; i++) { + let rootNode = rootNodes[i] + + if (rootNode.type === 'Intel Mine') { + let intelMineProducts = functionLibraryUiObjectsFromNodes.addUIObject(node, 'Intel Mine Products') + intelMineProducts.payload.referenceParent = rootNode + } + } + } + function addMissingSessionReferences(node, rootNodes, functionLibraryUiObjectsFromNodes) { let networkNode = UI.projects.superalgos.utilities.meshes.findNodeInNodeMesh(node, 'Network Node', undefined, true, false, true, false) if (networkNode === undefined) { return } diff --git a/Projects/Superalgos/Function-Libraries/DataMineFunctions.js b/Projects/Superalgos/Function-Libraries/MineFunctions.js similarity index 99% rename from Projects/Superalgos/Function-Libraries/DataMineFunctions.js rename to Projects/Superalgos/Function-Libraries/MineFunctions.js index 625431786..5abed0d41 100644 --- a/Projects/Superalgos/Function-Libraries/DataMineFunctions.js +++ b/Projects/Superalgos/Function-Libraries/MineFunctions.js @@ -1,4 +1,4 @@ -function newDataMineFunctions() { +function newMineFunctions() { thisObject = { addAllOutputDatasets: addAllOutputDatasets, addAllDataDependencies: addAllDataDependencies, diff --git a/Projects/Superalgos/Function-Libraries/TaskFunctions.js b/Projects/Superalgos/Function-Libraries/TaskFunctions.js index 7e975a42f..99c82e3c7 100644 --- a/Projects/Superalgos/Function-Libraries/TaskFunctions.js +++ b/Projects/Superalgos/Function-Libraries/TaskFunctions.js @@ -13,16 +13,22 @@ function newTaskFunctions() { stopAllExchangeDataTasks: stopAllExchangeDataTasks, runAllExchangeTradingTasks: runAllExchangeTradingTasks, stopAllExchangeTradingTasks: stopAllExchangeTradingTasks, + runAllExchangeLearningTasks: runAllExchangeLearningTasks, + stopAllExchangeLearningTasks: stopAllExchangeLearningTasks, runAllMarketDataTasks: runAllMarketDataTasks, stopAllMarketDataTasks: stopAllMarketDataTasks, runAllMarketTradingTasks: runAllMarketTradingTasks, stopAllMarketTradingTasks: stopAllMarketTradingTasks, + runAllMarketLearningTasks: runAllMarketLearningTasks, + stopAllMarketLearningTasks: stopAllMarketLearningTasks, runAllDataMineTasks: runAllDataMineTasks, stopAllDataMineTasks: stopAllDataMineTasks, runAllTradingMineTasks: runAllTradingMineTasks, stopAllTradingMineTasks: stopAllTradingMineTasks, + runAllIntelMineTasks: runAllIntelMineTasks, + stopAllIntelMineTasks: stopAllIntelMineTasks, addMissingExchangeDataTasks: addMissingExchangeDataTasks, addMissingMarketDataTasks: addMissingMarketDataTasks, @@ -30,6 +36,10 @@ function newTaskFunctions() { addMissingExchangeTradingTasks: addMissingExchangeTradingTasks, addMissingMarketTradingTasks: addMissingMarketTradingTasks, addMissingTradingMineTasks: addMissingTradingMineTasks, + addMissingExchangeLearningTasks: addMissingExchangeLearningTasks, + addMissingMarketLearningTasks: addMissingMarketLearningTasks, + addMissingIntelMineTasks: addMissingIntelMineTasks, + addAllTasks: addAllTasks } @@ -323,6 +333,16 @@ function newTaskFunctions() { } } + function runAllExchangeLearningTasks(parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.exchangeLearningTasks.length; i++) { + let node = parent.exchangeLearningTasks[i] + let menu = node.payload.uiObject.menu + + menu.internalClick('Run All Market Learning Tasks') + menu.internalClick('Run All Market Learning Tasks') + } + } + function stopAllExchangeTradingTasks(parent, functionLibraryProtocolNode) { for (let i = 0; i < parent.exchangeTradingTasks.length; i++) { let node = parent.exchangeTradingTasks[i] @@ -333,6 +353,16 @@ function newTaskFunctions() { } } + function stopAllExchangeLearningTasks(parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.exchangeLearningTasks.length; i++) { + let node = parent.exchangeLearningTasks[i] + let menu = node.payload.uiObject.menu + + menu.internalClick('Stop All Market Learning Tasks') + menu.internalClick('Stop All Market Learning Tasks') + } + } + function runAllMarketDataTasks(parent, functionLibraryProtocolNode) { for (let i = 0; i < parent.marketDataTasks.length; i++) { let node = parent.marketDataTasks[i] @@ -363,6 +393,16 @@ function newTaskFunctions() { } } + function runAllMarketLearningTasks(parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.marketLearningTasks.length; i++) { + let node = parent.marketLearningTasks[i] + let menu = node.payload.uiObject.menu + + menu.internalClick('Run All Intel Mine Tasks') + menu.internalClick('Run All Intel Mine Tasks') + } + } + function stopAllMarketTradingTasks(parent, functionLibraryProtocolNode) { for (let i = 0; i < parent.marketTradingTasks.length; i++) { let node = parent.marketTradingTasks[i] @@ -373,6 +413,16 @@ function newTaskFunctions() { } } + function stopAllMarketLearningTasks(parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.marketLearningTasks.length; i++) { + let node = parent.marketLearningTasks[i] + let menu = node.payload.uiObject.menu + + menu.internalClick('Stop All Intel Mine Tasks') + menu.internalClick('Stop All Intel Mine Tasks') + } + } + function runAllDataMineTasks(parent, functionLibraryProtocolNode) { for (let i = 0; i < parent.dataMineTasks.length; i++) { let node = parent.dataMineTasks[i] @@ -403,6 +453,16 @@ function newTaskFunctions() { } } + function runAllIntelMineTasks(parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.intelMineTasks.length; i++) { + let node = parent.intelMineTasks[i] + let menu = node.payload.uiObject.menu + + menu.internalClick('Run All Task Managers') + menu.internalClick('Run All Task Managers') + } + } + function stopAllTradingMineTasks(parent, functionLibraryProtocolNode) { for (let i = 0; i < parent.tradingMineTasks.length; i++) { let node = parent.tradingMineTasks[i] @@ -413,6 +473,16 @@ function newTaskFunctions() { } } + function stopAllIntelMineTasks(parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.intelMineTasks.length; i++) { + let node = parent.intelMineTasks[i] + let menu = node.payload.uiObject.menu + + menu.internalClick('Stop All Task Managers') + menu.internalClick('Stop All Task Managers') + } + } + function addMissingExchangeDataTasks(node, rootNodes, functionLibraryUiObjectsFromNodes) { addMissingExchangeTasks(node, rootNodes, 'Exchange Data Tasks', functionLibraryUiObjectsFromNodes) } @@ -421,6 +491,10 @@ function newTaskFunctions() { addMissingExchangeTasks(node, rootNodes, 'Exchange Trading Tasks', functionLibraryUiObjectsFromNodes) } + function addMissingExchangeLearningTasks(node, rootNodes, functionLibraryUiObjectsFromNodes) { + addMissingExchangeTasks(node, rootNodes, 'Exchange Learning Tasks', functionLibraryUiObjectsFromNodes) + } + function addMissingExchangeTasks(node, rootNodes, newNodeType, functionLibraryUiObjectsFromNodes) { for (let i = 0; i < rootNodes.length; i++) { let rootNode = rootNodes[i] @@ -448,6 +522,10 @@ function newTaskFunctions() { addMissingMarketTasks(node, 'Market Trading Tasks', functionLibraryUiObjectsFromNodes) } + function addMissingMarketLearningTasks(node, functionLibraryUiObjectsFromNodes) { + addMissingMarketTasks(node, 'Market Learning Tasks', functionLibraryUiObjectsFromNodes) + } + function addMissingMarketTasks(node, newNodeType, functionLibraryUiObjectsFromNodes) { if (node.payload === undefined) { return } if (node.payload.referenceParent === undefined) { return } @@ -473,6 +551,10 @@ function newTaskFunctions() { addMissingMineTasks(node, rootNodes, 'Trading Mine', 'Trading Mine Tasks', functionLibraryUiObjectsFromNodes) } + function addMissingIntelMineTasks(node, rootNodes, functionLibraryUiObjectsFromNodes) { + addMissingMineTasks(node, rootNodes, 'Intel Mine', 'Intel Mine Tasks', functionLibraryUiObjectsFromNodes) + } + function addMissingMineTasks(node, rootNodes, rootNodeType, newNodeType, functionLibraryUiObjectsFromNodes) { for (let i = 0; i < rootNodes.length; i++) { let rootNode = rootNodes[i] diff --git a/Projects/Superalgos/Schemas/AppSchema.json b/Projects/Superalgos/Schemas/AppSchema.json index 04605761b..4d4050ba3 100644 --- a/Projects/Superalgos/Schemas/AppSchema.json +++ b/Projects/Superalgos/Schemas/AppSchema.json @@ -26,6 +26,12 @@ "relatedUiObject": "Trading Mine", "actionFunction": "payload.executeAction" }, + { + "action": "Add UI Object", + "label": "Add Intel Mine", + "relatedUiObject": "Intel Mine", + "actionFunction": "payload.executeAction" + }, { "action": "Add UI Object", "label": "Add Super Scripts", @@ -1914,6 +1920,14 @@ "relatedUiObject": "Data Mining", "actionFunction": "payload.executeAction" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "intelMining", + "label": "Add Intel Mining", + "relatedUiObject": "Intel Mining", + "actionFunction": "payload.executeAction" + }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -1967,6 +1981,12 @@ "childType": "Data Mining", "autoAdd": true }, + { + "name": "intelMining", + "type": "node", + "childType": "Intel Mining", + "autoAdd": true + }, { "name": "testingEnvironment", "type": "node", @@ -2030,7 +2050,7 @@ "addLeftIcons": true, "level": 2, "chainAttachesTo": { - "compatibleTypes": "->Data Mine Tasks->Trading Mine Tasks->" + "compatibleTypes": "->Data Mine Tasks->Trading Mine Tasks->Intel Mine Tasks->" }, "properties": [ { @@ -2096,6 +2116,14 @@ "relatedUiObject": "Trading Bot Instance", "actionFunction": "payload.executeAction" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "bot", + "label": "Add AI Bot Instance", + "relatedUiObject": "AI Bot Instance", + "actionFunction": "payload.executeAction" + }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -2136,6 +2164,11 @@ "type": "node", "childType": "Indicator Bot Instance" }, + { + "name": "bot", + "type": "node", + "childType": "AI Bot Instance" + }, { "name": "keyReference", "type": "node", @@ -2192,6 +2225,55 @@ ], "propertyNameAtParent": "bot" }, + { + "type": "AI Bot Instance", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add UI Object", + "label": "Add Process Instance", + "relatedUiObject": "AI Process Instance", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "editors": { + "config": true + }, + "initialValues": { + "config": "{}" + }, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Task->" + }, + "properties": [ + { + "name": "processes", + "type": "array", + "childType": "AI Process Instance", + "autoAdd": false + } + ], + "propertyNameAtParent": "bot", + "icon": "bitcoin" + }, { "type": "Sensor Process Instance", "menuItems": [ @@ -2257,7 +2339,7 @@ "action": "Add UI Object", "disableIfPropertyIsDefined": true, "propertyToCheckFor": "session", - "label": "Add Backtesting", + "label": "Add Backtesting Session", "relatedUiObject": "Backtesting Session", "actionFunction": "payload.executeAction" }, @@ -2265,7 +2347,7 @@ "action": "Add UI Object", "disableIfPropertyIsDefined": true, "propertyToCheckFor": "session", - "label": "Add Live Trading", + "label": "Add Live Trading Session", "relatedUiObject": "Live Trading Session", "actionFunction": "payload.executeAction" }, @@ -2273,7 +2355,7 @@ "action": "Add UI Object", "disableIfPropertyIsDefined": true, "propertyToCheckFor": "session", - "label": "Add Forward Testing", + "label": "Add Forward Testing Session", "relatedUiObject": "Forward Testing Session", "actionFunction": "payload.executeAction" }, @@ -2281,7 +2363,7 @@ "action": "Add UI Object", "disableIfPropertyIsDefined": true, "propertyToCheckFor": "session", - "label": "Add Paper Trading", + "label": "Add Paper Trading Session", "relatedUiObject": "Paper Trading Session", "actionFunction": "payload.executeAction" }, @@ -2346,6 +2428,64 @@ ], "propertyNameAtParent": "processes" }, + { + "type": "AI Process Instance", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "session", + "label": "Add Learning Session", + "relatedUiObject": "Learning Session", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "executionStartedEvent", + "label": "Add Execution Started Event", + "relatedUiObject": "Execution Started Event", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent Parent", + "Use Reference Parent" + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Process Definition->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Trading Bot Instance->" + }, + "properties": [ + { + "name": "session", + "type": "node", + "childType": "Learning Session" + }, + { + "name": "executionStartedEvent", + "type": "node", + "childType": "Execution Started Event", + "autoAdd": false + } + ], + "propertyNameAtParent": "processes", + "icon": "bitcoin" + }, { "type": "Backtesting Session", "menuItems": [ @@ -9007,7 +9147,7 @@ "addLeftIcons": true, "level": 2, "chainAttachesTo": { - "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" + "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->Learning Session->" }, "properties": [ { @@ -9850,6 +9990,108 @@ ], "propertyNameAtParent": "session" }, + { + "type": "Learning Session", + "menuItems": [ + { + "action": "Run Session", + "label": "Run", + "workingLabel": "Run Request Sent", + "workDoneLabel": "Session Running", + "workFailedLabel": "Session Cannot be Run", + "secondaryAction": "Stop Session", + "secondaryLabel": "Stop", + "secondaryWorkingLabel": "Stopping...", + "secondaryWorkDoneLabel": "Session Stopped", + "secondaryWorkFailedLabel": "Session Cannot be Stopped", + "secondaryIcon": "stop", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.executeAction" + }, + { + "action": "Resume Session", + "label": "Resume", + "workingLabel": "Resume Request Sent", + "workDoneLabel": "Session Running", + "workFailedLabel": "Session Cannot be Resumed", + "secondaryAction": "Stop Session", + "secondaryLabel": "Stop", + "secondaryWorkingLabel": "Stopping...", + "secondaryWorkDoneLabel": "Session Stopped", + "secondaryWorkFailedLabel": "Session Cannot be Stopped", + "secondaryIcon": "stop", + "iconPathOn": "resume", + "iconPathOff": "resume", + "actionFunction": "payload.executeAction" + }, + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Parameters", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "isTitleAllwaysVisible": true, + "addLeftIcons": true, + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n\"folderName\": \"Your-Session-Folder-Name\"\n}" + }, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Trading System->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Trading Process Instance->" + }, + "properties": [ + { + "name": "parameters", + "type": "node", + "childType": "Parameters", + "autoAdd": true + }, + { + "name": "tradingSystemReference", + "type": "node", + "childType": "Trading System Reference", + "autoAdd": true + }, + { + "name": "tradingEngineReference", + "type": "node", + "childType": "Trading Engine Reference", + "autoAdd": true + }, + { + "name": "socialBots", + "type": "node", + "childType": "Social Bots" + } + ], + "propertyNameAtParent": "session", + "icon": "bitcoin" + }, { "type": "Sensor Bot Instance", "menuItems": [ @@ -10084,6 +10326,63 @@ } ] }, + { + "type": "Intel Mine", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add UI Object", + "label": "Add AI Bot", + "relatedUiObject": "AI Bot", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "label": "Add Plotter", + "relatedUiObject": "Plotter", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "isTitleAllwaysVisible": true, + "isHierarchyHead": true, + "addLeftIcons": true, + "editors": { + "config": true + }, + "level": 0, + "initialValues": { + "config": "{ \n\"codeName\": \"Type a name with no spaces or dashes\"\n}" + }, + "properties": [ + { + "name": "aiBots", + "type": "array", + "childType": "AI Bot" + }, + { + "name": "plotters", + "type": "array", + "childType": "Plotter" + } + ], + "icon": "bitcoin" + }, { "type": "Sensor Bot", "menuItems": [ @@ -10182,7 +10481,7 @@ }, "level": 1, "chainAttachesTo": { - "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->" + "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->AI Bot->" }, "properties": [ { @@ -10524,7 +10823,7 @@ "addLeftIcons": true, "level": 3, "chainAttachesTo": { - "compatibleTypes": "->Trading Bot->Product Definition Folder->" + "compatibleTypes": "->Trading Bot->AI Bot->Product Definition Folder->" }, "properties": [ { @@ -10596,7 +10895,7 @@ "compatibleTypes": "->Plotter Module->" }, "chainAttachesTo": { - "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->Product Definition Folder->" + "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->AI Bot->Product Definition Folder->" }, "properties": [ { @@ -11149,7 +11448,7 @@ }, "level": 3, "chainAttachesTo": { - "compatibleTypes": "->Data Mine->" + "compatibleTypes": "->Trading Mine->" }, "properties": [ { @@ -11173,6 +11472,80 @@ ], "propertyNameAtParent": "tradingBots" }, + { + "type": "AI Bot", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add UI Object", + "label": "Add Process Definition", + "relatedUiObject": "Process Definition", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "label": "Add Product Definition", + "relatedUiObject": "Product Definition", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "label": "Add Product Definition Folder", + "relatedUiObject": "Product Definition Folder", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "isTitleAllwaysVisible": true, + "addLeftIcons": true, + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n \"codeName\": \"\"\n}" + }, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Intel Mine->" + }, + "properties": [ + { + "name": "processes", + "type": "array", + "childType": "Process Definition", + "autoAdd": true + }, + { + "name": "products", + "type": "array", + "childType": "Product Definition", + "autoAdd": true + }, + { + "name": "productDefinitionFolders", + "type": "array", + "childType": "Product Definition Folder", + "autoAdd": true + } + ], + "propertyNameAtParent": "aiBots", + "icon": "bitcoin" + }, { "type": "Plotter", "menuItems": [ @@ -12901,7 +13274,7 @@ "addLeftIcons": true, "level": 4, "chainAttachesTo": { - "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" + "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->Learning Session->" }, "properties": [ { @@ -14772,6 +15145,78 @@ } ] }, + { + "type": "Intel Mine Tasks", + "menuItems": [ + { + "action": "Run All Task Managers", + "label": "Run All Task Managers", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.executeAction" + }, + { + "action": "Stop All Task Managers", + "label": "Stop All Task Managers", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "label": "Add Task Manager", + "relatedUiObject": "Task Manager", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add All Tasks", + "label": "Add All Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Task", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Intel Mine->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Market Learning Tasks->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "intelMineTasks", + "properties": [ + { + "name": "taskManagers", + "type": "array", + "childType": "Task Manager", + "monitorChildrenRunning": true + } + ], + "icon": "bitcoin" + }, { "type": "Market Data Tasks", "menuItems": [ @@ -14916,6 +15361,79 @@ } ] }, + { + "type": "Market Learning Tasks", + "menuItems": [ + { + "action": "Run All Intel Mine Tasks", + "label": "Run All Intel Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.executeAction" + }, + { + "action": "Stop All Intel Mine Tasks", + "label": "Stop All Intel Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "label": "Add Intel Mine Tasks", + "relatedUiObject": "Intel Mine Tasks", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add Missing Intel Mine Tasks", + "label": "Add Missing Intel Mine Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Intel Mine Tasks", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Market->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Exchange Learning Tasks->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent Parent Parent", + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "marketLearningTasks", + "properties": [ + { + "name": "intelMineTasks", + "type": "array", + "childType": "Intel Mine Tasks", + "monitorChildrenRunning": true + } + ], + "icon": "bitcoin" + }, { "type": "Exchange Data Tasks", "menuItems": [ @@ -15058,6 +15576,78 @@ } ] }, + { + "type": "Exchange Learning Tasks", + "menuItems": [ + { + "action": "Run All Market Learning Tasks", + "label": "Run All Market Learning Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.executeAction" + }, + { + "action": "Stop All Market Learning Tasks", + "label": "Stop All Market Learning Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "label": "Add Market Learning Tasks", + "relatedUiObject": "Market Learning Tasks", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add Missing Market Learning Tasks", + "label": "Add Missing Markets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Market Learning Tasks", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Crypto Exchange->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Intel Mining->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "exchangeLearningTasks", + "properties": [ + { + "name": "marketLearningTasks", + "type": "array", + "childType": "Market Learning Tasks", + "monitorChildrenRunning": true + } + ], + "icon": "bitcoin" + }, { "type": "Data Mining", "menuItems": [ @@ -15121,6 +15711,70 @@ } ] }, + { + "type": "Intel Mining", + "menuItems": [ + { + "action": "Run All Exchange Learning Tasks", + "label": "Run All Exchange Learning Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "run", + "iconPathOff": "run", + "actionFunction": "payload.executeAction" + }, + { + "action": "Stop All Exchange Learning Tasks", + "label": "Stop All Exchange Learning Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "label": "Add Exchange Learning Tasks", + "relatedUiObject": "Exchange Learning Tasks", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add Missing Exchange Learning Tasks", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Exchange Learning Tasks", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 2, + "chainAttachesTo": { + "compatibleTypes": "->Network Node->" + }, + "propertyNameAtParent": "intelMining", + "properties": [ + { + "name": "exchangeLearningTasks", + "type": "array", + "childType": "Exchange Learning Tasks", + "monitorChildrenRunning": true + } + ], + "icon": "bitcoin" + }, { "type": "Testing Environment", "menuItems": [