From 48361c8e893e1b8a1f2b86da54d343e91d4db476 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Tue, 23 Feb 2021 18:36:39 +0100 Subject: [PATCH] Predictions Stored at Trading Engine --- .../Learning-Engines/Low-Frequency.json | 2 +- Projects/Superalgos/Schemas/AppSchema.json | 122 ++++++++++++++- .../LearningSessionFunctions.js | 3 +- .../TensorFlowLibrary.js | 144 ++++++++++++------ 4 files changed, 216 insertions(+), 55 deletions(-) diff --git a/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json b/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json index 03ca6a772..926774fb6 100644 --- a/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json +++ b/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json @@ -1 +1 @@ -{"type":"Learning Engine","name":"Low-Frequency","project":"Superalgos","learningCurrent":{"type":"Learning Current","name":"New Learning Current","project":"Superalgos","learningEpisode":{"type":"Learning Episode","name":"New Learning Episode","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2cc4ea2e-0c49-4dc4-be14-5c37dba3d4a3","savedPayload":{"position":{"x":11579.353376181454,"y":11483.233023771927},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"5e87e4cf-d3cf-4ca3-90d0-bcc215ff32df","savedPayload":{"position":{"x":11553.745789630078,"y":11567.649923428959},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7073b390-c791-428b-b75d-11d7bef076ee","savedPayload":{"position":{"x":11512.161325536144,"y":11645.44898372349},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f5dc8eea-94d7-41d7-9c44-3b044fa5cbb7","savedPayload":{"position":{"x":11456.198051533946,"y":11713.640430398615},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f36a352e-9711-490f-9020-84bf3731f93c","savedPayload":{"position":{"x":11388.006604858821,"y":11769.603704400815},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0cd1e3ea-f314-4777-9988-bbde66dd2688","savedPayload":{"position":{"x":11310.207544564291,"y":11811.188168494748},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"1961b061-f041-494f-8c47-004c672c23f3","savedPayload":{"position":{"x":11225.790644907258,"y":11836.795755046123},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"9ffc4653-3d13-4036-b8aa-98e34ea6e497","savedPayload":{"position":{"x":11138,"y":11845.442378864669},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"headOfTheMarket":{"type":"Head Of The Market","name":"New Head Of The Market","config":"{\n\"initialValue\": false\n}","project":"Superalgos","id":"dc3294b4-3754-4154-808a-6531410f6378","savedPayload":{"position":{"x":11050.209355092742,"y":11836.795755046123},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"processDate":{"type":"Process Date","name":"New Process Date","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a009dbfb-9fce-4787-9461-dc63cb0cdf03","savedPayload":{"position":{"x":10965.79245543571,"y":11811.188168494748},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"learningEpisodeCounters":{"type":"Learning Episode Counters","name":"New Learning Episode Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"74d652d9-7439-4a8f-a66e-588f1cb24686","savedPayload":{"position":{"x":10975.784040048437,"y":12210.957080582268},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85c3b8c7-45ed-4edb-9887-704f98a5936b","savedPayload":{"position":{"x":10637.986790282357,"y":12143.765029936958},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"63dba0bf-57a1-4b4b-9f59-9384bb5786b2","savedPayload":{"position":{"x":10446.640018959724,"y":11857.394349308071},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"d4dd877b-f7b2-43b4-8da1-c733b60490bc","savedPayload":{"position":{"x":10887.993395141179,"y":11769.603704400814},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningEpisodeStatistics":{"type":"Learning Episode Statistics","name":"New Learning Episode Statistics","project":"Superalgos","hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"9de0458a-6680-427e-a10a-4da95fd1d92a","savedPayload":{"position":{"x":10819.801948466054,"y":12163.640430398615},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"83f68d55-7a22-4a0b-b8ca-0fe6b62379a7","savedPayload":{"position":{"x":10501.603896932109,"y":12031.83848193256},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"9a435a42-569e-41da-b44b-7f526cedf1e2","savedPayload":{"position":{"x":9919.801948466054,"y":11713.640430398615},"targetPosition":{"x":10369.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e64eb9f2-f221-4670-a8fc-f957e98c11e6","savedPayload":{"position":{"x":10369.801948466054,"y":11713.640430398615},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6562658-9ea6-4966-9c11-eb0e61c05738","savedPayload":{"position":{"x":10819.801948466054,"y":11713.640430398615},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"distanceToLearningEvent":{"type":"Distance To Learning Event","name":"New Distance To Learning Event","project":"Superalgos","id":"df0a5981-a8bc-41a9-a185-da0cf851ecc1","savedPayload":{"position":{"x":10763.838674463854,"y":11645.44898372349},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"candle":{"type":"Candle","name":"New Candle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a084a254-689b-44d5-8dba-d23a7a34ece2","savedPayload":{"position":{"x":10722.254210369922,"y":12017.64992342896},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"18e8077e-39f8-4160-80e5-a11367fc2763","savedPayload":{"position":{"x":10550.046665805632,"y":11983.395713059039},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"open":{"type":"Open","name":"New Open","project":"Superalgos","id":"13b92322-64e0-42ea-adb1-ec86c33bed20","savedPayload":{"position":{"x":10404.056158835976,"y":11885.847974962906},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"close":{"type":"Close","name":"New Close","project":"Superalgos","id":"c6573019-dd20-49bf-858b-a697cc607a53","savedPayload":{"position":{"x":10306.508420739843,"y":11739.857467993252},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"min":{"type":"Min","name":"New Min","project":"Superalgos","id":"3b69eda4-a6ef-4134-99be-7e839c8b91f1","savedPayload":{"position":{"x":10272.254210369922,"y":11567.64992342896},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"max":{"type":"Max","name":"New Max","project":"Superalgos","id":"881df28f-3b34-44f9-a4e4-c0ce8f745aaf","savedPayload":{"position":{"x":10306.508420739843,"y":11395.44237886467},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9c63040e-47b7-4152-8fca-1c6cb05eb951","savedPayload":{"position":{"x":10404.056158835974,"y":11249.451871895015},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2dbd259-087c-4a97-97fb-adca5644c50c","savedPayload":{"position":{"x":10722.254210369922,"y":11567.64992342896},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cycle":{"type":"Cycle","name":"New Cycle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3d206944-b1cd-4021-8a32-ce89090445e7","savedPayload":{"position":{"x":10508.249741926704,"y":11891.897451993214},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4242187f-af2d-4e67-9b39-1f43f85d46a4","savedPayload":{"position":{"x":10304.023420635787,"y":11703.112582445558},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"lastBegin":{"type":"Last Begin","name":"New Last Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1b537fe0-045f-4aeb-a94b-416cb38deedb","savedPayload":{"position":{"x":10249.76581818883,"y":11430.3411949159},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"lastEnd":{"type":"Last End","name":"New Last End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"37f632a1-a7b2-48b7-90d1-9642c854bc14","savedPayload":{"position":{"x":10366.201494572488,"y":11177.772688282103},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94de14c9-e7a2-48d8-b558-c1753a6708d9","savedPayload":{"position":{"x":10696.646623818546,"y":11483.233023771927},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d2239d7-fc42-47c7-a71c-08f8dcd4a1e7","savedPayload":{"position":{"x":11138,"y":11395.442378864669},"targetPosition":{"x":11138,"y":11095.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dcfb0855-7cb2-402f-a960-91abe3eaec2c","savedPayload":{"position":{"x":11138,"y":11095.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b545b9a-9adf-4037-b72a-6f52e4cf6267","savedPayload":{"position":{"x":11138,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file +{"type":"Learning Engine","name":"Low-Frequency","project":"Superalgos","learningCurrent":{"type":"Learning Current","name":"New Learning Current","project":"Superalgos","learningEpisode":{"type":"Learning Episode","name":"New Learning Episode","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2cc4ea2e-0c49-4dc4-be14-5c37dba3d4a3","savedPayload":{"position":{"x":11825.790644907258,"y":10354.089002683215},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"5e87e4cf-d3cf-4ca3-90d0-bcc215ff32df","savedPayload":{"position":{"x":11910.207544564291,"y":10379.69658923459},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7073b390-c791-428b-b75d-11d7bef076ee","savedPayload":{"position":{"x":11988.006604858821,"y":10421.281053328523},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f5dc8eea-94d7-41d7-9c44-3b044fa5cbb7","savedPayload":{"position":{"x":12056.198051533946,"y":10477.244327330722},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f36a352e-9711-490f-9020-84bf3731f93c","savedPayload":{"position":{"x":12112.161325536144,"y":10545.435774005848},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0cd1e3ea-f314-4777-9988-bbde66dd2688","savedPayload":{"position":{"x":12153.745789630078,"y":10623.23483430038},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"1961b061-f041-494f-8c47-004c672c23f3","savedPayload":{"position":{"x":12179.353376181454,"y":10707.651733957411},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"9ffc4653-3d13-4036-b8aa-98e34ea6e497","savedPayload":{"position":{"x":12188,"y":10795.442378864669},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"headOfTheMarket":{"type":"Head Of The Market","name":"New Head Of The Market","config":"{\n\"initialValue\": false\n}","project":"Superalgos","id":"dc3294b4-3754-4154-808a-6531410f6378","savedPayload":{"position":{"x":12179.353376181454,"y":10883.233023771927},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"processDate":{"type":"Process Date","name":"New Process Date","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a009dbfb-9fce-4787-9461-dc63cb0cdf03","savedPayload":{"position":{"x":12153.745789630078,"y":10967.649923428959},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"learningEpisodeCounters":{"type":"Learning Episode Counters","name":"New Learning Episode Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"74d652d9-7439-4a8f-a66e-588f1cb24686","savedPayload":{"position":{"x":10975.784040048437,"y":12210.957080582268},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85c3b8c7-45ed-4edb-9887-704f98a5936b","savedPayload":{"position":{"x":10637.986790282357,"y":12143.765029936958},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"63dba0bf-57a1-4b4b-9f59-9384bb5786b2","savedPayload":{"position":{"x":10446.640018959724,"y":11857.394349308071},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"d4dd877b-f7b2-43b4-8da1-c733b60490bc","savedPayload":{"position":{"x":12112.161325536144,"y":11045.44898372349},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningEpisodeStatistics":{"type":"Learning Episode Statistics","name":"New Learning Episode Statistics","project":"Superalgos","hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"9de0458a-6680-427e-a10a-4da95fd1d92a","savedPayload":{"position":{"x":10819.801948466054,"y":12163.640430398615},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"83f68d55-7a22-4a0b-b8ca-0fe6b62379a7","savedPayload":{"position":{"x":10501.603896932109,"y":12031.83848193256},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"9a435a42-569e-41da-b44b-7f526cedf1e2","savedPayload":{"position":{"x":9919.801948466054,"y":11713.640430398615},"targetPosition":{"x":10369.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e64eb9f2-f221-4670-a8fc-f957e98c11e6","savedPayload":{"position":{"x":10369.801948466054,"y":11713.640430398615},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6562658-9ea6-4966-9c11-eb0e61c05738","savedPayload":{"position":{"x":12056.198051533946,"y":11113.640430398615},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"distanceToLearningEvent":{"type":"Distance To Learning Event","name":"New Distance To Learning Event","project":"Superalgos","id":"df0a5981-a8bc-41a9-a185-da0cf851ecc1","savedPayload":{"position":{"x":11988.006604858821,"y":11169.603704400815},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"candle":{"type":"Candle","name":"New Candle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a084a254-689b-44d5-8dba-d23a7a34ece2","savedPayload":{"position":{"x":10722.254210369922,"y":12017.64992342896},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"18e8077e-39f8-4160-80e5-a11367fc2763","savedPayload":{"position":{"x":10550.046665805632,"y":11983.395713059039},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"open":{"type":"Open","name":"New Open","project":"Superalgos","id":"13b92322-64e0-42ea-adb1-ec86c33bed20","savedPayload":{"position":{"x":10404.056158835976,"y":11885.847974962906},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"close":{"type":"Close","name":"New Close","project":"Superalgos","id":"c6573019-dd20-49bf-858b-a697cc607a53","savedPayload":{"position":{"x":10306.508420739843,"y":11739.857467993252},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"min":{"type":"Min","name":"New Min","project":"Superalgos","id":"3b69eda4-a6ef-4134-99be-7e839c8b91f1","savedPayload":{"position":{"x":10272.254210369922,"y":11567.64992342896},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"max":{"type":"Max","name":"New Max","project":"Superalgos","id":"881df28f-3b34-44f9-a4e4-c0ce8f745aaf","savedPayload":{"position":{"x":10306.508420739843,"y":11395.44237886467},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9c63040e-47b7-4152-8fca-1c6cb05eb951","savedPayload":{"position":{"x":10404.056158835974,"y":11249.451871895015},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2dbd259-087c-4a97-97fb-adca5644c50c","savedPayload":{"position":{"x":11910.207544564291,"y":11211.188168494748},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cycle":{"type":"Cycle","name":"New Cycle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3d206944-b1cd-4021-8a32-ce89090445e7","savedPayload":{"position":{"x":10508.249741926704,"y":11891.897451993214},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4242187f-af2d-4e67-9b39-1f43f85d46a4","savedPayload":{"position":{"x":10304.023420635787,"y":11703.112582445558},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"lastBegin":{"type":"Last Begin","name":"New Last Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1b537fe0-045f-4aeb-a94b-416cb38deedb","savedPayload":{"position":{"x":10249.76581818883,"y":11430.3411949159},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"lastEnd":{"type":"Last End","name":"New Last End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"37f632a1-a7b2-48b7-90d1-9642c854bc14","savedPayload":{"position":{"x":10366.201494572488,"y":11177.772688282103},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94de14c9-e7a2-48d8-b558-c1753a6708d9","savedPayload":{"position":{"x":11825.790644907258,"y":11236.795755046123},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d2239d7-fc42-47c7-a71c-08f8dcd4a1e7","savedPayload":{"position":{"x":11738,"y":10795.442378864669},"targetPosition":{"x":11438,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dcfb0855-7cb2-402f-a960-91abe3eaec2c","savedPayload":{"position":{"x":11438,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"predictions":{"type":"Predictions","name":"New Predictions","project":"Superalgos","predictions":[{"type":"Prediction","name":"Prediction #1","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e8b61221-4bd0-448d-910c-e2eaabcbc5e0","savedPayload":{"position":{"x":10610.354286469244,"y":11345.027747886721},"targetPosition":{"x":10688,"y":11055.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"69821a50-ce36-412e-8e63-fca34d4514bc","savedPayload":{"position":{"x":10475.867965644036,"y":11267.382034355964},"targetPosition":{"x":10688,"y":11055.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62a7f50c-9462-4367-b2c5-e31525c2a2f3","savedPayload":{"position":{"x":10688,"y":11055.25},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #2","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b92a8ffb-5719-43b4-92d3-9c0e66a71b22","savedPayload":{"position":{"x":10366.060344508705,"y":11157.574413220633},"targetPosition":{"x":10578.192378864669,"y":10945.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bd3603fe-9f87-42fc-9678-137524809cc8","savedPayload":{"position":{"x":10288.414630977948,"y":11023.088092395425},"targetPosition":{"x":10578.192378864669,"y":10945.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91e5bc0f-f350-4cbe-a1eb-a1a0d02a480f","savedPayload":{"position":{"x":10578.192378864669,"y":10945.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #3","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ef6ce697-f709-41e8-bcbe-c8e9d530fe87","savedPayload":{"position":{"x":10248.222252113279,"y":10873.088092395425},"targetPosition":{"x":10538,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ed62bdfa-7b1b-4bee-8f49-f9706b4fb0c9","savedPayload":{"position":{"x":10248.222252113279,"y":10717.796665333914},"targetPosition":{"x":10538,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"384c3428-630d-4bc2-938c-4c0971bbf626","savedPayload":{"position":{"x":10538,"y":10795.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #4","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7ab9a16c-1663-4282-8134-496610a3a96e","savedPayload":{"position":{"x":10288.414630977948,"y":10567.796665333914},"targetPosition":{"x":10578.192378864669,"y":10645.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7eb66623-e9d6-4bc7-85d3-bd9834f97af0","savedPayload":{"position":{"x":10366.060344508705,"y":10433.310344508705},"targetPosition":{"x":10578.192378864669,"y":10645.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e15b0424-43fc-4108-b788-f190606e8238","savedPayload":{"position":{"x":10578.192378864669,"y":10645.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #5","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"431527cc-03ac-40f3-bbf4-fba460550689","savedPayload":{"position":{"x":10475.867965644036,"y":10323.502723373374},"targetPosition":{"x":10688,"y":10535.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"73c2a2ce-4985-45d8-983d-89cdd3680887","savedPayload":{"position":{"x":10610.354286469244,"y":10245.857009842617},"targetPosition":{"x":10688,"y":10535.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cf0cbd6b-afb9-41e5-b52c-842afefbb5f7","savedPayload":{"position":{"x":10688,"y":10535.634757729338},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"15e998e4-363a-4f16-8a51-f9ec7618dde6","savedPayload":{"position":{"x":10838,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b545b9a-9adf-4037-b72a-6f52e4cf6267","savedPayload":{"position":{"x":11138,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/AppSchema.json b/Projects/Superalgos/Schemas/AppSchema.json index f5097953c..9a055bde0 100644 --- a/Projects/Superalgos/Schemas/AppSchema.json +++ b/Projects/Superalgos/Schemas/AppSchema.json @@ -3039,9 +3039,125 @@ "type": "node", "childType": "Learning Current", "autoAdd": true + }, + { + "name": "predictions", + "type": "node", + "childType": "Predictions", + "autoAdd": true } ] }, + { + "type": "Predictions", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Prediction", + "relatedUiObject": "Prediction", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Learning Engine->" + }, + "propertyNameAtParent": "predictions", + "childrenNodesProperties": [ + { + "name": "predictions", + "type": "array", + "childType": "Prediction", + "autoAdd": true + } + ], + "icon": "bitcoin" + }, + { + "type": "Prediction", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Learning Engine", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Value", + "label": "Copy Node Value", + "iconPathOn": "copy-value", + "iconPathOff": "copy-value", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Type", + "label": "Copy Node Type", + "iconPathOn": "copy-type", + "iconPathOff": "copy-type", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Predictions->" + }, + "propertyNameAtParent": "predictions", + "childrenNodesProperties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + } + ], + "icon": "bitcoin" + }, { "type": "Dynamic Indicators", "menuItems": [ @@ -7794,7 +7910,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->" + "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->" }, "propertyNameAtParent": "begin" }, @@ -7848,7 +7964,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->" + "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->" }, "propertyNameAtParent": "end" }, @@ -10430,7 +10546,7 @@ } ], "initialValues": { - "config": "{ \n\"codeName\": \"Time Series Forcasting Tensor Flow JS\"\n}" + "config": "{ \n\"backLearningPredictingRatio\": 0.8\n}" }, "addLeftIcons": true, "editors": { diff --git a/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js b/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js index f333e421b..9480d2117 100644 --- a/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js +++ b/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js @@ -118,7 +118,8 @@ function newSuperalgosFunctionLibraryLearningSessionFunctions() { 'Begin->End->Exit Type->Status->Begin Rate->End Rate->Stage Base Asset->Stage Quoted Asset->Size Placed->Target Size->Size Filled->Fees Paid->Stage Defined In->' + 'Serial Number->Identifier->Begin->End->Begin Rate->End Rate->Strategy Name->Status->Exit Type->' + 'Balance->Begin Balance->End Balance->' + - 'Index->Situation Name->Formula->Periods->' + 'Index->Situation Name->Formula->Periods->' + + 'Predictions->Prediction->Begin->End->' let learningEngine = UI.projects.superalgos.functionLibraries.protocolNode.getProtocolNode(node.learningEngineReference.payload.referenceParent, false, true, true, false, false, lightingPath) diff --git a/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js b/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js index 7f8bd9ce2..69d28fe56 100644 --- a/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js +++ b/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js @@ -375,65 +375,109 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { } /* - Building the Labels Tensor + At this point we need to decide if we are going to learn or going to predict. + This is regulated by the backLearningPredictingRatio property at the config + of the Learning Algorithm of the Learning Session. */ - if (layersModel.outputLayer === undefined) { - // TODO - } - if (layersModel.outputLayer.outputLabels === undefined) { - // TODO - } - learningSystem.evalFormulas(layersModel.outputLayer.outputLabels, layersModel.outputLayer.outputLabels.type) + let backLearningPredictingRatio = 0.8 // this is the default value. - for (let i = 0; i < layersModel.outputLayer.outputLabels.dataLabels.length; i++) { - let dataLabel = layersModel.outputLayer.outputLabels.dataLabels[i] - if (dataLabel.labelFormula === undefined) { continue } - let labelValue = learningSystem.formulas.get(dataLabel.labelFormula.id) - labels.push(labelValue) - } - - tensorFlowData = require("@tensorflow/tfjs-data") - - function* featuresGenerator() { - //console.log('Features: ' + features) - yield features - } - - function* labelsGenerator() { - //console.log('Labels: ' + labels) - yield labels - } - - const xs = tensorFlowData.generator(featuresGenerator) - const ys = tensorFlowData.generator(labelsGenerator) - const ds = tensorFlowData.zip({ xs, ys }).shuffle(1).batch(1) - - let verbose = 0 - let ecpochs = 1 - - if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset !== undefined) { - if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.verbose !== undefined) { - if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.verbose.config.value !== undefined) { - verbose = learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.verbose.config.value - } + if (sessionParameters.learningAlgorithm !== undefined) { + if (sessionParameters.learningAlgorithm.config.backLearningPredictingRatio !== undefined) { + backLearningPredictingRatio = sessionParameters.learningAlgorithm.config.backLearningPredictingRatio } } - if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset !== undefined) { - if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.epochs !== undefined) { - if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.epochs.config.value !== undefined) { - ecpochs = learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.epochs.config.value - } - } + let initialCandle = Math.trunc(sessionParameters.timeRange.config.initialDatetime / sessionParameters.timeFrame.config.value) + let finalCandle = Math.trunc(sessionParameters.timeRange.config.finalDatetime / sessionParameters.timeFrame.config.value) + let currentCandle = Math.trunc(learningEngine.learningCurrent.learningEpisode.candle.begin.value / sessionParameters.timeFrame.config.value) + let thresholdCandle = (finalCandle - initialCandle) * backLearningPredictingRatio + initialCandle + + if (currentCandle < thresholdCandle) { + await learn() + } else { + predict() } - await tensorFlowModel.fitDataset(ds, { - verbose: verbose, - epochs: ecpochs - }) + async function learn() { + /* + Building the Labels Tensor + */ + if (layersModel.outputLayer === undefined) { + // TODO + } + if (layersModel.outputLayer.outputLabels === undefined) { + // TODO + } + learningSystem.evalFormulas(layersModel.outputLayer.outputLabels, layersModel.outputLayer.outputLabels.type) - //tensorFlowModel.summary() + for (let i = 0; i < layersModel.outputLayer.outputLabels.dataLabels.length; i++) { + let dataLabel = layersModel.outputLayer.outputLabels.dataLabels[i] + if (dataLabel.labelFormula === undefined) { continue } + let labelValue = learningSystem.formulas.get(dataLabel.labelFormula.id) + labels.push(labelValue) + } + tensorFlowData = require("@tensorflow/tfjs-data") + + function* featuresGenerator() { + //console.log('Features: ' + features) + yield features + } + + function* labelsGenerator() { + //console.log('Labels: ' + labels) + yield labels + } + + const xs = tensorFlowData.generator(featuresGenerator) + const ys = tensorFlowData.generator(labelsGenerator) + const ds = tensorFlowData.zip({ xs, ys }).shuffle(1).batch(1) + + let verbose = 0 + let ecpochs = 1 + + if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset !== undefined) { + if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.verbose !== undefined) { + if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.verbose.config.value !== undefined) { + verbose = learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.verbose.config.value + } + } + } + + if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset !== undefined) { + if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.epochs !== undefined) { + if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.epochs.config.value !== undefined) { + ecpochs = learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.fitDataset.epochs.config.value + } + } + } + + await tensorFlowModel.fitDataset(ds, { + verbose: verbose, + epochs: ecpochs + }) + + } + + async function predict() { + let featuresTensor = tensorFlowBackend.tensor([features]) + let predictions = tensorFlowModel.predict(featuresTensor,{ verbose: 1 }) + + /* + For each label, we will have a predictions, and we will store it at the + learning engine data structure. + */ + let predictionsArray = predictions.dataSync() + predictions.dispose() + featuresTensor.dispose() + + for (let i = 0; i < predictionsArray.length; i++) { + let prediction = predictionsArray[i] + learningEngine.predictions.predictions[i].value = prediction + learningEngine.predictions.predictions[i].begin.value = learningEngine.learningCurrent.learningEpisode.candle.begin.value + learningEngine.predictions.predictions[i].end.value = learningEngine.learningCurrent.learningEpisode.candle.end.value + } + } } function badDefinitionUnhandledException(err, message, node) {