diff --git a/Projects/Foundations/Schemas/App-Schema/begin-rate.json b/Projects/Foundations/Schemas/App-Schema/begin-rate.json index 96f454470..099c141e8 100644 --- a/Projects/Foundations/Schemas/App-Schema/begin-rate.json +++ b/Projects/Foundations/Schemas/App-Schema/begin-rate.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->Strategy->Position->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->Strategy->Position->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" }, "propertyNameAtParent": "beginRate" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/begin.json b/Projects/Foundations/Schemas/App-Schema/begin.json index cf5fbc2a8..bbc7e8721 100644 --- a/Projects/Foundations/Schemas/App-Schema/begin.json +++ b/Projects/Foundations/Schemas/App-Schema/begin.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->Strategy->Position->Candle->Cycle->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->Stop Loss->Take Profit->Prediction->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->Strategy->Position->Candle->Cycle->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->Stop Loss->Take Profit->Prediction->" }, "propertyNameAtParent": "begin" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/bot-products.json b/Projects/Foundations/Schemas/App-Schema/bot-products.json index 579f01023..1f639549a 100644 --- a/Projects/Foundations/Schemas/App-Schema/bot-products.json +++ b/Projects/Foundations/Schemas/App-Schema/bot-products.json @@ -31,7 +31,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Data Mine Products->Trading Mine Products->Learning Mine Products->" + "compatibleTypes": "->Data Mine Products->Trading Mine Products->Portfolio Mine Products->Learning Mine Products->" }, "propertyNameAtParent": "botProducts", "childrenNodesProperties": [ diff --git a/Projects/Foundations/Schemas/App-Schema/candle.json b/Projects/Foundations/Schemas/App-Schema/candle.json index c1117956d..10ab9e024 100644 --- a/Projects/Foundations/Schemas/App-Schema/candle.json +++ b/Projects/Foundations/Schemas/App-Schema/candle.json @@ -9,6 +9,14 @@ "actionProject": "Visual-Scripting", "relatedUiObjectProject": "Foundations" }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Portfolio Parameters", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, { "action": "Delete UI Object", "actionProject": "Visual-Scripting", @@ -23,7 +31,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->" }, "propertyNameAtParent": "candle", "childrenNodesProperties": [ diff --git a/Projects/Foundations/Schemas/App-Schema/data-product.json b/Projects/Foundations/Schemas/App-Schema/data-product.json index 280df2fa1..39b4f17cb 100644 --- a/Projects/Foundations/Schemas/App-Schema/data-product.json +++ b/Projects/Foundations/Schemas/App-Schema/data-product.json @@ -22,7 +22,7 @@ "compatibleTypes": "->Product Definition->" }, "attachingRules": { - "compatibleTypes": "->Market Data Products->Data Product Folder->Bot Products->Trading Session Reference->" + "compatibleTypes": "->Market Data Products->Data Product Folder->Bot Products->Trading Session Reference->Portfolio Session Reference->" }, "propertyNameAtParent": "dataProducts", "childrenNodesProperties": [] diff --git a/Projects/Foundations/Schemas/App-Schema/data-storage.json b/Projects/Foundations/Schemas/App-Schema/data-storage.json index e6fdc8edb..7d817ff84 100644 --- a/Projects/Foundations/Schemas/App-Schema/data-storage.json +++ b/Projects/Foundations/Schemas/App-Schema/data-storage.json @@ -21,6 +21,16 @@ "actionProject": "Visual-Scripting", "relatedUiObjectProject": "Foundations" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "portfolioMinesData", + "label": "Add Trading Mines Data", + "relatedUiObject": "Portfolio Mines Data", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -61,6 +71,12 @@ "childType": "Trading Mines Data", "autoAdd": true }, + { + "name": "portfolioMinesData", + "type": "node", + "childType": "Portfolio Mines Data", + "autoAdd": true + }, { "name": "learningMinesData", "type": "node", diff --git a/Projects/Foundations/Schemas/App-Schema/distance-to-portfolio-event.json b/Projects/Foundations/Schemas/App-Schema/distance-to-portfolio-event.json new file mode 100644 index 000000000..5a8d8a59f --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/distance-to-portfolio-event.json @@ -0,0 +1,85 @@ +{ + "type": "Distance To Portfolio Event", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Portfolio Parameters", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Portfolio Episode->" + }, + "propertyNameAtParent": "distanceToPortfolioEvent", + "childrenNodesProperties": [ + { + "name": "triggerOn", + "type": "node", + "childType": "Trigger On", + "autoAdd": true + }, + { + "name": "triggerOff", + "type": "node", + "childType": "Trigger Off", + "autoAdd": true + }, + { + "name": "takePosition", + "type": "node", + "childType": "Take Position", + "autoAdd": true + }, + { + "name": "closePosition", + "type": "node", + "childType": "Close Position", + "autoAdd": true + }, + { + "name": "nextPhase", + "type": "node", + "childType": "Next Phase", + "autoAdd": true + }, + { + "name": "moveToPhase", + "type": "node", + "childType": "Move To Phase", + "autoAdd": true + }, + { + "name": "createOrder", + "type": "node", + "childType": "Create Order", + "autoAdd": true + }, + { + "name": "cancelOrder", + "type": "node", + "childType": "Cancel Order", + "autoAdd": true + }, + { + "name": "closeOrder", + "type": "node", + "childType": "Close Order", + "autoAdd": true + } + ] +} diff --git a/Projects/Foundations/Schemas/App-Schema/end-rate.json b/Projects/Foundations/Schemas/App-Schema/end-rate.json index 424c3e1d1..8f206d0e5 100644 --- a/Projects/Foundations/Schemas/App-Schema/end-rate.json +++ b/Projects/Foundations/Schemas/App-Schema/end-rate.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->Strategy->Position->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->Strategy->Position->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" }, "propertyNameAtParent": "endRate" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/end.json b/Projects/Foundations/Schemas/App-Schema/end.json index 06c579861..8ba4df0d9 100644 --- a/Projects/Foundations/Schemas/App-Schema/end.json +++ b/Projects/Foundations/Schemas/App-Schema/end.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->Strategy->Position->Candle->Cycle->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->Stop Loss->Take Profit->Prediction->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->Strategy->Position->Candle->Cycle->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->Stop Loss->Take Profit->Prediction->" }, "propertyNameAtParent": "end" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/episode-base-asset.json b/Projects/Foundations/Schemas/App-Schema/episode-base-asset.json index 4af2eca80..7da34e2b4 100644 --- a/Projects/Foundations/Schemas/App-Schema/episode-base-asset.json +++ b/Projects/Foundations/Schemas/App-Schema/episode-base-asset.json @@ -9,6 +9,14 @@ "actionProject": "Visual-Scripting", "relatedUiObjectProject": "Foundations" }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Portfolio Parameters", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, { "action": "Delete UI Object", "actionProject": "Visual-Scripting", @@ -23,7 +31,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->" }, "propertyNameAtParent": "episodeBaseAsset", "childrenNodesProperties": [ @@ -88,4 +96,4 @@ "autoAdd": true } ] -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/episode-quoted-asset.json b/Projects/Foundations/Schemas/App-Schema/episode-quoted-asset.json index f00382c42..8dc53f049 100644 --- a/Projects/Foundations/Schemas/App-Schema/episode-quoted-asset.json +++ b/Projects/Foundations/Schemas/App-Schema/episode-quoted-asset.json @@ -9,6 +9,14 @@ "actionProject": "Visual-Scripting", "relatedUiObjectProject": "Foundations" }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Portfolio Parameters", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, { "action": "Delete UI Object", "actionProject": "Visual-Scripting", @@ -23,7 +31,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->" }, "propertyNameAtParent": "episodeQuotedAsset", "childrenNodesProperties": [ @@ -88,4 +96,4 @@ "autoAdd": true } ] -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/exchange-portfolio-products.json b/Projects/Foundations/Schemas/App-Schema/exchange-portfolio-products.json new file mode 100644 index 000000000..a44f3a284 --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/exchange-portfolio-products.json @@ -0,0 +1,55 @@ +{ + "type": "Exchange Portfolio Products", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Market Portfolio Products", + "relatedUiObject": "Market Portfolio Products", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add Missing Market Portfolio Products", + "label": "Add Missing Markets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Market Portfolio Products", + "actionFunction": "payload.executeAction", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "addLeftIcons": true, + "level": 3, + "referencingRules": { + "compatibleTypes": "->Crypto Exchange->" + }, + "attachingRules": { + "compatibleTypes": "->Project Portfolio Products->" + }, + "propertyNameAtParent": "exchangePortfolioProducts", + "childrenNodesProperties": [ + { + "name": "marketPortfolioProducts", + "type": "array", + "childType": "Market Portfolio Products", + "autoAdd": false + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/exit-type.json b/Projects/Foundations/Schemas/App-Schema/exit-type.json index f1e5a8c55..f95efd092 100644 --- a/Projects/Foundations/Schemas/App-Schema/exit-type.json +++ b/Projects/Foundations/Schemas/App-Schema/exit-type.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->Strategy->->Position->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->Strategy->->Position->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" }, "propertyNameAtParent": "exitType" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/head-of-the-market.json b/Projects/Foundations/Schemas/App-Schema/head-of-the-market.json index 4ae8334fb..23cad3b04 100644 --- a/Projects/Foundations/Schemas/App-Schema/head-of-the-market.json +++ b/Projects/Foundations/Schemas/App-Schema/head-of-the-market.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->" }, "propertyNameAtParent": "headOfTheMarket" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/identifier.json b/Projects/Foundations/Schemas/App-Schema/identifier.json index 1369c2397..c0b0c51ba 100644 --- a/Projects/Foundations/Schemas/App-Schema/identifier.json +++ b/Projects/Foundations/Schemas/App-Schema/identifier.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->Strategy->Position->Market Order->Limit Order->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->Strategy->Position->Market Order->Limit Order->" }, "propertyNameAtParent": "identifier" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/market-portfolio-products.json b/Projects/Foundations/Schemas/App-Schema/market-portfolio-products.json new file mode 100644 index 000000000..be31ad1cc --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/market-portfolio-products.json @@ -0,0 +1,54 @@ +{ + "type": "Market Portfolio Products", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Portfolio Session Reference", + "relatedUiObject": "Portfolio Session Reference", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add Missing Portfolio Session References", + "label": "Add Missing Sessions", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Portfolio Session Reference", + "actionFunction": "payload.executeAction", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent Parent Parent", + "Use Reference Parent" + ], + "referencingRules": { + "compatibleTypes": "->Market->" + }, + "attachingRules": { + "compatibleTypes": "->Exchange Portfolio Products->" + }, + "propertyNameAtParent": "marketPortfolioProducts", + "childrenNodesProperties": [ + { + "name": "portfolioSessionReferences", + "type": "array", + "childType": "Portfolio Session Reference" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/portfolio-episode-counters.json b/Projects/Foundations/Schemas/App-Schema/portfolio-episode-counters.json new file mode 100644 index 000000000..d01cc45de --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/portfolio-episode-counters.json @@ -0,0 +1,81 @@ +{ + "type": "Portfolio Episode Counters", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Portfolio Parameters", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add UI Object", + "label": "Add User Defined Counter", + "relatedUiObject": "User Defined Counter", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Portfolio Episode->" + }, + "propertyNameAtParent": "portfolioEpisodeCounters", + "childrenNodesProperties": [ + { + "name": "periods", + "type": "node", + "childType": "Periods", + "autoAdd": true + }, + { + "name": "strategies", + "type": "node", + "childType": "Strategies", + "autoAdd": true + }, + { + "name": "positions", + "type": "node", + "childType": "Positions", + "autoAdd": true + }, + { + "name": "orders", + "type": "node", + "childType": "Orders", + "autoAdd": true + }, + { + "name": "hits", + "type": "node", + "childType": "Hits", + "autoAdd": true + }, + { + "name": "fails", + "type": "node", + "childType": "Fails", + "autoAdd": true + }, + { + "name": "userDefinedCounters", + "type": "array", + "childType": "User Defined Counter", + "autoAdd": false + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/portfolio-episode-statistics.json b/Projects/Foundations/Schemas/App-Schema/portfolio-episode-statistics.json new file mode 100644 index 000000000..11e332a8d --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/portfolio-episode-statistics.json @@ -0,0 +1,75 @@ +{ + "type": "Portfolio Episode Statistics", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Portfolio Parameters", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add UI Object", + "label": "Add User Defined Statistic", + "relatedUiObject": "User Defined Statistic", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Portfolio Episode->" + }, + "propertyNameAtParent": "portfolioEpisodeStatistics", + "childrenNodesProperties": [ + { + "name": "profitLoss", + "type": "node", + "childType": "Profit Loss", + "autoAdd": true + }, + { + "name": "ROI", + "type": "node", + "childType": "ROI", + "autoAdd": true + }, + { + "name": "hitFail", + "type": "node", + "childType": "Hit Fail", + "autoAdd": true + }, + { + "name": "days", + "type": "node", + "childType": "Days", + "autoAdd": true + }, + { + "name": "annualizedRateOfReturn", + "type": "node", + "childType": "Annualized Rate Of Return", + "autoAdd": true + }, + { + "name": "userDefinedStatistics", + "type": "array", + "childType": "User Defined Statistic", + "autoAdd": true + } + ] +} diff --git a/Projects/Foundations/Schemas/App-Schema/portfolio-episode.json b/Projects/Foundations/Schemas/App-Schema/portfolio-episode.json new file mode 100644 index 000000000..d08d0aeaa --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/portfolio-episode.json @@ -0,0 +1,139 @@ +{ + "type": "Portfolio Episode", + "menuItems": [ + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Portfolio Parameters", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Portfolio Current->" + }, + "propertyNameAtParent": "portfolioEpisode", + "childrenNodesProperties": [ + { + "name": "serialNumber", + "type": "node", + "childType": "Serial Number", + "autoAdd": true + }, + { + "name": "identifier", + "type": "node", + "childType": "Identifier", + "autoAdd": true + }, + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "beginRate", + "type": "node", + "childType": "Begin Rate", + "autoAdd": true + }, + { + "name": "endRate", + "type": "node", + "childType": "End Rate", + "autoAdd": true + }, + { + "name": "status", + "type": "node", + "childType": "Status", + "autoAdd": true + }, + { + "name": "exitType", + "type": "node", + "childType": "Exit Type", + "autoAdd": true + }, + { + "name": "headOfTheMarket", + "type": "node", + "childType": "Head Of The Market", + "autoAdd": true + }, + { + "name": "processDate", + "type": "node", + "childType": "Process Date", + "autoAdd": true + }, + { + "name": "episodeBaseAsset", + "type": "node", + "childType": "Episode Base Asset", + "autoAdd": true + }, + { + "name": "episodeQuotedAsset", + "type": "node", + "childType": "Episode Quoted Asset", + "autoAdd": true + }, + { + "name": "portfolioEpisodeCounters", + "type": "node", + "childType": "Portfolio Episode Counters", + "autoAdd": true + }, + { + "name": "portfolioEpisodeStatistics", + "type": "node", + "childType": "Portfolio Episode Statistics", + "autoAdd": true + }, + { + "name": "distanceToPortfolioEvent", + "type": "node", + "childType": "Distance To Portfolio Event", + "autoAdd": true + }, + { + "name": "candle", + "type": "node", + "childType": "Candle", + "autoAdd": true + }, + { + "name": "cycle", + "type": "node", + "childType": "Cycle", + "autoAdd": true + }, + { + "name": "userDefinedVariables", + "type": "node", + "childType": "User Defined Variables", + "autoAdd": false + } + ] +} diff --git a/Projects/Foundations/Schemas/App-Schema/portfolio-mine-products.json b/Projects/Foundations/Schemas/App-Schema/portfolio-mine-products.json new file mode 100644 index 000000000..fa356c3de --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/portfolio-mine-products.json @@ -0,0 +1,54 @@ +{ + "type": "Portfolio Mine Products", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Bot Products", + "relatedUiObject": "Bot Products", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add All Data Products", + "label": "Add All Data Products", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Data Product", + "actionFunction": "payload.executeAction", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent" + ], + "referencingRules": { + "compatibleTypes": "->Portfolio Mine->" + }, + "attachingRules": { + "compatibleTypes": "->Portfolio Session Reference->" + }, + "propertyNameAtParent": "portfolioMineProducts", + "childrenNodesProperties": [ + { + "name": "botProducts", + "type": "array", + "childType": "Bot Products", + "autoAdd": false + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/portfolio-mines-data.json b/Projects/Foundations/Schemas/App-Schema/portfolio-mines-data.json new file mode 100644 index 000000000..4d495a7e3 --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/portfolio-mines-data.json @@ -0,0 +1,46 @@ +{ + "type": "Portfolio Mines Data", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Project Portfolio Products", + "relatedUiObject": "Project Portfolio Products", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add Missing Project Portfolio Products", + "label": "Add Missing Projects", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Project Portfolio Products", + "actionFunction": "payload.executeAction", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Data Storage->" + }, + "propertyNameAtParent": "portfolioMinesData", + "childrenNodesProperties": [ + { + "name": "projectPortfolioProducts", + "type": "array", + "childType": "Project Portfolio Products" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/portfolio-session-reference.json b/Projects/Foundations/Schemas/App-Schema/portfolio-session-reference.json new file mode 100644 index 000000000..0397a56b7 --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/portfolio-session-reference.json @@ -0,0 +1,71 @@ +{ + "type": "Portfolio Session Reference", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Data Product", + "relatedUiObject": "Data Product", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add UI Object", + "label": "Add Portfolio Mine Products", + "relatedUiObject": "Portfolio Mine Products", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add All Portfolio Mine Products", + "label": "Add All Portfolio Mine Products", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Portfolio Mine Products", + "actionFunction": "payload.executeAction", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent", + "Use Reference Parent Type", + "Use Child @marketDataProducts" + ], + "addLeftIcons": true, + "level": 3, + "alternativeIcons": "Use Reference Parent", + "referencingRules": { + "compatibleTypes": "->Live Portfolio Session->" + }, + "attachingRules": { + "compatibleTypes": "->Market Portfolio Products->" + }, + "propertyNameAtParent": "portfolioSessionReferences", + "childrenNodesProperties": [ + { + "name": "dataProducts", + "type": "array", + "childType": "Data Product", + "autoAdd": false + }, + { + "name": "portfolioMineProducts", + "type": "array", + "childType": "Portfolio Mine Products", + "autoAdd": false + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/process-date.json b/Projects/Foundations/Schemas/App-Schema/process-date.json index 712232b2b..6127bd68a 100644 --- a/Projects/Foundations/Schemas/App-Schema/process-date.json +++ b/Projects/Foundations/Schemas/App-Schema/process-date.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->" }, "propertyNameAtParent": "processDate" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/project-portfolio-products.json b/Projects/Foundations/Schemas/App-Schema/project-portfolio-products.json new file mode 100644 index 000000000..6f1f696ae --- /dev/null +++ b/Projects/Foundations/Schemas/App-Schema/project-portfolio-products.json @@ -0,0 +1,54 @@ +{ + "type": "Project Portfolio Products", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Exchange Portfolio Products", + "relatedUiObject": "Exchange Portfolio Products", + "actionFunction": "payload.executeAction", + "actionProject": "Visual-Scripting", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Add Missing Exchange Portfolio Products", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Exchange Portfolio Products", + "actionFunction": "payload.executeAction", + "relatedUiObjectProject": "Foundations" + }, + { + "action": "Delete UI Object", + "actionProject": "Visual-Scripting", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "title": [ + "Use Reference Parent" + ], + "alternativeIcons": "Use Reference Parent Parent", + "addLeftIcons": true, + "level": 2, + "referencingRules": { + "compatibleTypes": "->Project Definition->" + }, + "attachingRules": { + "compatibleTypes": "->Portfolio Mines Data->" + }, + "propertyNameAtParent": "projectPortfolioProducts", + "childrenNodesProperties": [ + { + "name": "exchangePortfolioProducts", + "type": "array", + "childType": "Exchange Portfolio Products" + } + ], + "icon": "bitcoin" +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/serial-number.json b/Projects/Foundations/Schemas/App-Schema/serial-number.json index 20f1aa76b..07f115394 100644 --- a/Projects/Foundations/Schemas/App-Schema/serial-number.json +++ b/Projects/Foundations/Schemas/App-Schema/serial-number.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->Strategy->Position->Market Order->Limit Order->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->Strategy->Position->Market Order->Limit Order->" }, "propertyNameAtParent": "serialNumber" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/status.json b/Projects/Foundations/Schemas/App-Schema/status.json index a76b40c7f..9840f8beb 100644 --- a/Projects/Foundations/Schemas/App-Schema/status.json +++ b/Projects/Foundations/Schemas/App-Schema/status.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode->Learning Episode->Strategy->Position->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" + "compatibleTypes": "->Trading Episode->Portfolio Episode->Learning Episode->Strategy->Position->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" }, "propertyNameAtParent": "status" -} \ No newline at end of file +} diff --git a/Projects/Foundations/Schemas/App-Schema/user-defined-counter.json b/Projects/Foundations/Schemas/App-Schema/user-defined-counter.json index bb080eefc..955dd98b8 100644 --- a/Projects/Foundations/Schemas/App-Schema/user-defined-counter.json +++ b/Projects/Foundations/Schemas/App-Schema/user-defined-counter.json @@ -52,7 +52,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode Counters->Learning Episode Counters->Position Counters->Strategy Counters->" + "compatibleTypes": "->Trading Episode Counters->Portfolio Episode Counters->Learning Episode Counters->Position Counters->Strategy Counters->" }, "propertyNameAtParent": "userDefinedCounters" -} \ No newline at end of file +}