diff --git a/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json b/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json index 4f054957d..03ca6a772 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","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":10183.405845398163,"y":12350.036533466506},"targetPosition":{"x":10501.603896932109,"y":12031.83848193256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e64eb9f2-f221-4670-a8fc-f957e98c11e6","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":{"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":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 diff --git a/Projects/Superalgos/Schemas/AppSchema.json b/Projects/Superalgos/Schemas/AppSchema.json index f672db4f3..9e1325a71 100644 --- a/Projects/Superalgos/Schemas/AppSchema.json +++ b/Projects/Superalgos/Schemas/AppSchema.json @@ -4067,6 +4067,18 @@ }, "propertyNameAtParent": "learningEpisodeStatistics", "childrenNodesProperties": [ + { + "name": "hitFail", + "type": "node", + "childType": "Hit Fail", + "autoAdd": true + }, + { + "name": "days", + "type": "node", + "childType": "Days", + "autoAdd": true + }, { "name": "userDefinedStatistics", "type": "array", @@ -5592,7 +5604,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode Statistics->Position Statistics->Order Statistics->" + "compatibleTypes": "->Trading Episode Statistics->Learning Episode Statistics->Position Statistics->Order Statistics->" }, "propertyNameAtParent": "days" }, @@ -5970,7 +5982,7 @@ "addLeftIcons": true, "level": 3, "attachingRules": { - "compatibleTypes": "->Trading Episode Statistics->Position Statistics->Position Base Asset->Position Quoted Asset->Episode Base Asset->Episode Quoted Asset->" + "compatibleTypes": "->Trading Episode Statistics->Learning Episode Statistics->Position Statistics->Position Base Asset->Position Quoted Asset->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "hitFail" }, diff --git a/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningEpisode.js b/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningEpisode.js index 6a64b696b..8c3fe4dea 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningEpisode.js +++ b/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningEpisode.js @@ -55,14 +55,6 @@ exports.newSuperalgosBotModulesLearningEpisode = function (processIndex) { learningEngine.learningCurrent.learningEpisode.begin.value = learningEngine.learningCurrent.learningEpisode.candle.begin.value learningEngine.learningCurrent.learningEpisode.end.value = learningEngine.learningCurrent.learningEpisode.candle.end.value - /* Getting the begin Balance from the session configuration */ - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.beginBalance.value = sessionParameters.sessionBaseAsset.config.initialBalance - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.beginBalance.value = sessionParameters.sessionQuotedAsset.config.initialBalance - - /* The current balance is also the begin balance, that is how this starts. */ - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.balance.value = sessionParameters.sessionBaseAsset.config.initialBalance - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.balance.value = sessionParameters.sessionQuotedAsset.config.initialBalance - /* Recording the opening at the Learning Engine Data Structure */ learningEngine.learningCurrent.learningEpisode.status.value = 'Open' learningEngine.learningCurrent.learningEpisode.serialNumber.value = 1 @@ -78,8 +70,6 @@ exports.newSuperalgosBotModulesLearningEpisode = function (processIndex) { learningEngine.learningCurrent.learningEpisode.status.value = 'Closed' learningEngine.learningCurrent.learningEpisode.end.value = learningEngine.learningCurrent.learningEpisode.candle.end.value learningEngine.learningCurrent.learningEpisode.endRate.value = learningEngine.learningCurrent.learningEpisode.candle.close.value - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.endBalance.value = learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.balance.value - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.endBalance.value = learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.balance.value } function resetEpisode() { @@ -90,8 +80,6 @@ exports.newSuperalgosBotModulesLearningEpisode = function (processIndex) { if (learningEngine.learningCurrent.learningEpisode.status.value === 'Open') { learningEngine.learningCurrent.learningEpisode.end.value = learningEngine.learningCurrent.learningEpisode.end.value + sessionParameters.timeFrame.config.value learningEngine.learningCurrent.learningEpisode.endRate.value = learningEngine.learningCurrent.learningEpisode.candle.close.value - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.endBalance.value = learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.balance.value - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.endBalance.value = learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.balance.value } } @@ -109,7 +97,7 @@ exports.newSuperalgosBotModulesLearningEpisode = function (processIndex) { function updateStatistics() { - /* Daus Calculation */ + /* Days Calculation */ learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.days.value = learningEngine.learningCurrent.learningEpisode.learningEpisodeCounters.periods.value * sessionParameters.timeFrame.config.value / @@ -122,75 +110,6 @@ exports.newSuperalgosBotModulesLearningEpisode = function (processIndex) { calculateEpisodeStatistics() function calculateAssetsStatistics() { - /* Updating Profit Loss */ - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value = - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.balance.value - - sessionParameters.sessionBaseAsset.config.initialBalance - - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.profitLoss.value = - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.balance.value - - sessionParameters.sessionQuotedAsset.config.initialBalance - - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value, 10) - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.profitLoss.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.profitLoss.value, 10) - - /* - Updating ROI - - https://www.investopedia.com/articles/basics/10/guide-to-calculating-roi.asp - */ - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.ROI.value = - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value / - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.beginBalance.value * 100 - - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.ROI.value = - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.profitLoss.value / - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.beginBalance.value * 100 - - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.ROI.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.ROI.value, 10) - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.ROI.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.ROI.value, 10) - - /* Updating Hit Ratio */ - if (learningEngine.learningCurrent.learningEpisode.learningEpisodeCounters.positions.value > 0) { - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.hitRatio.value = - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.hits.value / - learningEngine.learningCurrent.learningEpisode.learningEpisodeCounters.positions.value - - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.hitRatio.value = - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.hits.value / - learningEngine.learningCurrent.learningEpisode.learningEpisodeCounters.positions.value - - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.hitRatio.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.hitRatio.value, 10) - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.hitRatio.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.hitRatio.value, 10) - } - - /* - Updating Annualized Rate Of Return - - https://www.investopedia.com/terms/a/annualized-rate.asp - */ - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.annualizedRateOfReturn.value = - Math.pow( - ( - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.beginBalance.value + - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value - ) / learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.beginBalance.value - , - (365 / learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.days.value) - ) - 1 - - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.annualizedRateOfReturn.value = - Math.pow( - ( - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.beginBalance.value + - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.profitLoss.value - ) / learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.beginBalance.value - , - (365 / learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.days.value) - ) - 1 - - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.annualizedRateOfReturn.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.annualizedRateOfReturn.value, 10) - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.annualizedRateOfReturn.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.annualizedRateOfReturn.value, 10) /* Updating Hit or Fail */ if (learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value > 0) { @@ -206,52 +125,6 @@ exports.newSuperalgosBotModulesLearningEpisode = function (processIndex) { } function calculateEpisodeStatistics() { - /* Updating Profit Loss */ - learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.profitLoss.value = - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value * learningEngine.learningCurrent.learningEpisode.candle.close.value + - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.profitLoss.value - - learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.profitLoss.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.profitLoss.value, 10) - - /* - Updating ROI - - https://www.investopedia.com/articles/basics/10/guide-to-calculating-roi.asp - */ - learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.ROI.value = - ( - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value * learningEngine.learningCurrent.learningEpisode.endRate.value + - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.profitLoss.value - ) / ( - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.beginBalance.value * learningEngine.learningCurrent.learningEpisode.beginRate.value + - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.beginBalance.value - ) * 100 - - learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.ROI.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.ROI.value, 10) - - /* - Updating Annualized Rate Of Return - - https://www.investopedia.com/terms/a/annualized-rate.asp - */ - learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.annualizedRateOfReturn.value = - Math.pow( - ( - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.beginBalance.value * learningEngine.learningCurrent.learningEpisode.beginRate.value + - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.beginBalance.value + - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.profitLoss.value + - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.profitLoss.value - ) / - ( - learningEngine.learningCurrent.learningEpisode.episodeBaseAsset.beginBalance.value * learningEngine.learningCurrent.learningEpisode.beginRate.value + - learningEngine.learningCurrent.learningEpisode.episodeQuotedAsset.beginBalance.value - ) - , - (365 / learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.days.value) - ) - 1 - - learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.annualizedRateOfReturn.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.annualizedRateOfReturn.value, 10) - /* Updating Hit or Fail */ if (learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.profitLoss.value > 0) { learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics.hitFail.value = 'Hit' @@ -263,58 +136,12 @@ exports.newSuperalgosBotModulesLearningEpisode = function (processIndex) { function updatedistanceToLearningEventsCounters() { /* Keeping Distance Counters Up-to-date while avoinding counting before the first event happens. */ + /* if ( learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.triggerOn.value > 0 ) { learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.triggerOn.value++ } - - if ( - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.triggerOff.value > 0 - ) { - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.triggerOff.value++ - } - - if ( - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.takePosition.value > 0 - ) { - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.takePosition.value++ - } - - if ( - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.closePosition.value > 0 - ) { - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.closePosition.value++ - } - - if ( - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.nextPhase.value > 0 - ) { - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.nextPhase.value++ - } - - if ( - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.moveToPhase.value > 0 - ) { - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.moveToPhase.value++ - } - - if ( - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.createOrder.value > 0 - ) { - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.createOrder.value++ - } - - if ( - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.cancelOrder.value > 0 - ) { - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.cancelOrder.value++ - } - - if ( - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.closeOrder.value > 0 - ) { - learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent.closeOrder.value++ - } + */ } } \ No newline at end of file diff --git a/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningOutput.js b/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningOutput.js index df25a541e..ca4a2dafd 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningOutput.js +++ b/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningOutput.js @@ -41,7 +41,7 @@ exports.newSuperalgosBotModulesLearningOutput = function (processIndex) { timeFrameLabel, learningProcessDate, fileStorage, - TS.projects.superalgos.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SIMULATION_STATE.learningEngine.tradingCurrent.learningEpisode.headOfTheMarket.value + TS.projects.superalgos.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SIMULATION_STATE.learningEngine.learningCurrent.learningEpisode.headOfTheMarket.value ) await learningSimulationModuleObject.runSimulation( diff --git a/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningSystem.js b/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningSystem.js index 4c3054120..7a923628e 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningSystem.js +++ b/Projects/Superalgos/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/LearningSystem.js @@ -26,8 +26,6 @@ exports.newSuperalgosBotModulesLearningSystem = function (processIndex) { let sessionParameters let dynamicIndicators - let learningStagesModuleObject = TS.projects.superalgos.botModules.learningStages.newSuperalgosBotModulesLearningStages(processIndex) - return thisObject function initialize() { @@ -38,8 +36,6 @@ exports.newSuperalgosBotModulesLearningSystem = function (processIndex) { learningSystem.conditions = new Map() learningSystem.formulas = new Map() - learningStagesModuleObject.initialize() - /* Adding Functions used elsewhere to Learning System Definition */ learningSystem.checkConditions = function (situation, passed) { /* Given a Situation, we check if all children conditions are true or not */ @@ -118,8 +114,6 @@ exports.newSuperalgosBotModulesLearningSystem = function (processIndex) { } function finalize() { - learningStagesModuleObject.finalize() - learningStagesModuleObject = undefined chart = undefined exchange = undefined @@ -143,11 +137,10 @@ exports.newSuperalgosBotModulesLearningSystem = function (processIndex) { } function mantain() { - learningStagesModuleObject.mantain() + } function reset() { - learningStagesModuleObject.reset() learningSystem.highlights = [] learningSystem.errors = [] @@ -168,8 +161,6 @@ exports.newSuperalgosBotModulesLearningSystem = function (processIndex) { chart = pChart exchange = pExchange market = pMarket - - learningStagesModuleObject.updateChart(pChart, pExchange, pMarket) } function buildDynamicIndicators() { @@ -192,23 +183,6 @@ exports.newSuperalgosBotModulesLearningSystem = function (processIndex) { /* Dynamic Indicators */ buildDynamicIndicators() - /* Run the Trigger Stage */ - learningStagesModuleObject.runTriggerStage() - - /* Run the Open Stage */ - await learningStagesModuleObject.runOpenStage() - - /* Run the Manage Stage */ - learningStagesModuleObject.runManageStage() - - /* Run the Close Stage */ - await learningStagesModuleObject.runCloseStage() - - /* Validation if we need to exit the position */ - learningStagesModuleObject.exitPositionValidation() - - learningStagesModuleObject.cycleBasedStatistics() - } catch (err) { /* If an error ocurred during execution, it was alreeady logged and diff --git a/Projects/Superalgos/TS/Function-Libraries/SingleMarketFunctions.js b/Projects/Superalgos/TS/Function-Libraries/SingleMarketFunctions.js index 3534e24eb..3b6ed5548 100644 --- a/Projects/Superalgos/TS/Function-Libraries/SingleMarketFunctions.js +++ b/Projects/Superalgos/TS/Function-Libraries/SingleMarketFunctions.js @@ -120,7 +120,7 @@ callBackFunction(TS.projects.superalgos.globals.standardResponses.DEFAULT_FAIL_RESPONSE); return } else { - if (tradingMineNode.config.codeName === undefined) { + if (learningMineNode.config.codeName === undefined) { TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] start -> Learning Mine witn no codeName defined."); callBackFunction(TS.projects.superalgos.globals.standardResponses.DEFAULT_FAIL_RESPONSE); return diff --git a/Projects/Superalgos/TS/Process-Modules/DataDependencies.js b/Projects/Superalgos/TS/Process-Modules/DataDependencies.js index 8dd4656f6..de27f6d22 100644 --- a/Projects/Superalgos/TS/Process-Modules/DataDependencies.js +++ b/Projects/Superalgos/TS/Process-Modules/DataDependencies.js @@ -107,17 +107,19 @@ map.set(key, true) } } - } else { - /* - If we did not receive any filters, like in the case of Indicators and Sensors, - we need to add the default exchange and market to these maps in order - for the following sections to work. - */ - thisObject.filters.market.list.set(thisObject.defaultMarket, true) - - thisObject.filters.exchange.list.set(thisObject.defaultExchange, true) - thisObject.filters.exchange.markets.set(thisObject.defaultExchange + '-' + thisObject.defaultMarket, true) } + /* + In case we do not receive any filters, like in the case of Indicators and Sensors, + or simply because the Learning System is still empty, + we need to add the default exchange and market to these maps in order + for the following sections to work, and later we at least have candles at the + Learning Simulation. + */ + thisObject.filters.market.list.set(thisObject.defaultMarket, true) + + thisObject.filters.exchange.list.set(thisObject.defaultExchange, true) + thisObject.filters.exchange.markets.set(thisObject.defaultExchange + '-' + thisObject.defaultMarket, true) + /* For each dependency declared at the curatedDependencyNodeArray, we will initialize a DataSet as part of this initialization process. @@ -204,7 +206,7 @@ */ if (dataDependency.referenceParent.parentNode.config.codeName !== 'Candles') { continue - } + } } addDataSet(exchange, market) } else {