Merge pull request #6 from Superalgos/develop

Updating Local Fork
This commit is contained in:
Smidy authored and GitHub committed 2021-04-12 22:56:42 +12:00
commit ef49e7d12a
140 files changed
+4283 -438

No files matched your search

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

@@ -0,0 +1 @@
{"type":"Data Mine","name":"Omega One","config":"{\n \"codeName\": \"Omega-One\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Chaikin Oscillator","config":"{\n \"codeName\": \"Chaikin-Oscillator\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Chaikin Oscillator","project":"Superalgos","id":"130f1639-b299-4ca8-96eb-25c8345e09e4","savedPayload":{"position":{"x":13957.729481237811,"y":17901.141979655422},"targetPosition":{"x":14015.96376638588,"y":18118.475290570463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5b0389ae-3da9-4628-bc20-1041faef76be"}}}],"outputDatasetFolders":[],"id":"e54488da-6999-437b-8a2d-85709728bb02","savedPayload":{"position":{"x":14015.96376638588,"y":18118.475290570463},"targetPosition":{"x":14074.198051533947,"y":18335.808601485503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Chaikin Oscillator Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"1ff01e67-048e-4d80-a944-b1b86f21f42b","savedPayload":{"position":{"x":14143.886491396086,"y":17681.058769490315},"targetPosition":{"x":14190.666621830082,"y":17901.141979655422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3364b7b3-93c0-49e5-8ea2-c18fce0cec74"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"c4fcc40a-427d-4c69-90a9-76abdc87b857","savedPayload":{"position":{"x":14214.185526065303,"y":17677.374553197562},"targetPosition":{"x":14190.666621830082,"y":17901.141979655422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"2cb0d0f1-a9dc-4791-9952-0878eeaa96bd","savedPayload":{"position":{"x":14282.182366522136,"y":17695.594251685838},"targetPosition":{"x":14190.666621830082,"y":17901.141979655422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"6e898c07-cb2e-4589-bd33-9b3c6b585bae","savedPayload":{"position":{"x":14341.221008260825,"y":17733.93439392301},"targetPosition":{"x":14190.666621830082,"y":17901.141979655422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataMineDataDependencies":[],"id":"2ea98444-5707-42c3-a6d0-0c4d7cceec15","savedPayload":{"position":{"x":14190.666621830082,"y":17901.141979655422},"targetPosition":{"x":14074.198051533947,"y":18335.808601485503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"3364b7b3-93c0-49e5-8ea2-c18fce0cec74","savedPayload":{"position":{"x":14392.396103067893,"y":18017.610549951558},"targetPosition":{"x":14074.198051533947,"y":18335.808601485503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"4a247a06-dfc4-400b-a3b8-fa9Line truncated
@@ -1 +0,0 @@
{"type":"Data Mine","name":"Omega","config":"{\n \"codeName\": \"Omega\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"ARPS Fast","config":"{\n \"codeName\": \"ARPS-Fast\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market ARPS Fast","project":"Superalgos","id":"d3431f91-842e-459b-b969-e93269ab06ee","savedPayload":{"position":{"x":17451.72948123781,"y":40729.60591487127},"targetPosition":{"x":17509.963766385878,"y":40946.93922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5132afea-630c-455f-be7c-8d94469a239d"}}}],"outputDatasetFolders":[],"id":"81ac5c2c-7766-44ed-8e84-94b42ffbf7ab","savedPayload":{"position":{"x":17509.963766385878,"y":40946.93922578631},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"ARPS Fast Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"dc491dd3-55ba-40ac-8f8e-0dd6d8e8e877","savedPayload":{"position":{"x":17570.18233668201,"y":40849.511367860556},"targetPosition":{"x":17626.43233668201,"y":40946.93922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"5a92a4fb-51ab-4ac6-9e6c-834767b542b4"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"95097e44-2b3c-4368-84ad-73f5d6ca1d89","savedPayload":{"position":{"x":17655.549479256046,"y":40838.27257032879},"targetPosition":{"x":17626.43233668201,"y":40946.93922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"0538007e-1eb0-4208-b848-4f7ff62588fa","savedPayload":{"position":{"x":17723.86019460776,"y":40890.68922578631},"targetPosition":{"x":17626.43233668201,"y":40946.93922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"84ef19f0-4c0b-4cec-844c-e4b7b1758f64","savedPayload":{"position":{"x":17626.43233668201,"y":40946.93922578631},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"5a92a4fb-51ab-4ac6-9e6c-834767b542b4","savedPayload":{"position":{"x":17886.39610306789,"y":40846.0744851674},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"301b012f-4e33-4549-89c3-90bf2f992458","savedPayload":{"position":{"x":17785.531362448986,"y":41106.038251553284},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e226b09c-b34e-493e-a9cb-c6562faa8ad2","saLine truncated
@@ -0,0 +1 @@
{"type":"Workspace","name":"Creating Custom Charts","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binanceus","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binanceus BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b","savedPayload":{"position":{"x":26497.378634092645,"y":28190.39686701245},"targetPosition":{"x":26757.186255227978,"y":28040.39686701245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"343313ae-5705-484d-8bf8-aed25ba61cfa","savedPayload":{"position":{"x":26757.186255227978,"y":28040.39686701245},"targetPosition":{"x":27016.99387636331,"y":27890.39686701245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8f38508-1cac-4ab1-815f-d338fc813377","savedPayload":{"position":{"x":27016.99387636331,"y":27890.39686701245},"targetPosition":{"x":27276.801497498644,"y":27740.39686701245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f","savedPayload":{"position":{"x":26407.46825383848,"y":27662.75115348169},"targetPosition":{"x":26697.2460017252,"y":27585.105439950934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7c8b312c-09bf-4c59-853f-1592391a9c57","savedPayload":{"position":{"x":26485.113967369238,"y":27372.97340559497},"targetPosition":{"x":26697.2460017252,"y":27585.105439950934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"8d58e84b-d7ef-464f-8079-0ec0887e3da3","savedPayload":{"position":{"x":26697.2460017252,"y":27585.105439950934},"targetPosition":{"x":26987.023749611923,"y":27662.75115348169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf29e3bd-9386-408b-9091-042da0c53e81","savedPayload":{"position":{"x":26987.023749611923,"y":27662.75115348169},"targetPosition":{"x":27276.801497498644,"y":27740.39686701245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","project":"Superalgos","id":"a707814e-b81b-4102-9b5b-4e2fe969324f","savedPayload":{"position":{"x":26716.99387636331,"y":27070.781624741783},"targetPosition":{"x":26976.801497498644,"y":27220.781624741783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referencePLine truncated
@@ -1 +1 @@
{"type":"Workspace","name":"Getting Started","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b","savedPayload":{"position":{"x":23490.023749611923,"y":29239.135911211026},"targetPosition":{"x":23779.801497498644,"y":29316.781624741783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"343313ae-5705-484d-8bf8-aed25ba61cfa","savedPayload":{"position":{"x":23779.801497498644,"y":29316.781624741783},"targetPosition":{"x":24069.579245385365,"y":29394.42733827254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8f38508-1cac-4ab1-815f-d338fc813377","savedPayload":{"position":{"x":24069.579245385365,"y":29394.42733827254},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f","savedPayload":{"position":{"x":23799.549372136753,"y":28802.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7c8b312c-09bf-4c59-853f-1592391a9c57","savedPayload":{"position":{"x":24059.356993272086,"y":28652.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"8d58e84b-d7ef-464f-8079-0ec0887e3da3","savedPayload":{"position":{"x":24059.356993272086,"y":28952.457809532632},"targetPosition":{"x":24209.356993272086,"y":29212.265430667965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf29e3bd-9386-408b-9091-042da0c53e81","savedPayload":{"position":{"x":24209.356993272086,"y":29212.265430667965},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","project":"Superalgos","id":"a707814e-b81b-4102-9b5b-4e2fe969324f","savedPayload":{"position":{"x":24437.002706802843,"y":28602.739808143135},"targetPosition":{"x":24514.6484203336,"y":28892.517556029856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"refeLine truncated
{"type":"Workspace","name":"Getting Started","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b","savedPayload":{"position":{"x":23490.023749611923,"y":29239.135911211026},"targetPosition":{"x":23779.801497498644,"y":29316.781624741783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"343313ae-5705-484d-8bf8-aed25ba61cfa","savedPayload":{"position":{"x":23779.801497498644,"y":29316.781624741783},"targetPosition":{"x":24069.579245385365,"y":29394.42733827254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8f38508-1cac-4ab1-815f-d338fc813377","savedPayload":{"position":{"x":24069.579245385365,"y":29394.42733827254},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f","savedPayload":{"position":{"x":23799.549372136753,"y":28802.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7c8b312c-09bf-4c59-853f-1592391a9c57","savedPayload":{"position":{"x":24059.356993272086,"y":28652.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"8d58e84b-d7ef-464f-8079-0ec0887e3da3","savedPayload":{"position":{"x":24059.356993272086,"y":28952.457809532632},"targetPosition":{"x":24209.356993272086,"y":29212.265430667965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf29e3bd-9386-408b-9091-042da0c53e81","savedPayload":{"position":{"x":24209.356993272086,"y":29212.265430667965},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","project":"Superalgos","id":"a707814e-b81b-4102-9b5b-4e2fe969324f","savedPayload":{"position":{"x":24437.002706802843,"y":28602.739808143135},"targetPosition":{"x":24514.6484203336,"y":28892.517556029856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"refeLine truncated
+1 -1
View File
@@ -15789,7 +15789,7 @@
}
],
"initialValues": {
"config": "{ \n\"codeName\": \"DOUBLE_CLICK_ON_THIS_STRING_TO_SELECT_IT_XXX_DELETE_IT_AND_PASTE_YOUR_EXCHANGE_API_PUBLIC_KEY\",\n\"secret\": \"REPLACE_THIS_STRING_WITH_YOUR_API_KEY_SECRET\"\n,\n\"uid\": \"REPLACE_THIS_STRING_WITH_YOUR_UID_IF_NECESSARY\"\n}" },
"config": "{ \n\"codeName\": \"DOUBLE_CLICK_ON_THIS_STRING_TO_SELECT_IT_XXX_DELETE_IT_AND_PASTE_YOUR_EXCHANGE_API_PUBLIC_KEY\",\n\"secret\": \"REPLACE_THIS_STRING_WITH_YOUR_API_KEY_SECRET\"\n,\n\"uid\": \"REPLACE_THIS_STRING_WITH_YOUR_UID_IF_NECESSARY\"\n,\n\"password\": \"REPLACE_THIS_STRING_WITH_YOUR_PASSWORD_IF_NECESSARY\"\n}" },
"addLeftIcons": true,
"editors": {
"config": true
@@ -42,8 +42,13 @@
},
{
"style": "Chapter",
"text": "VIII->Superalgos->Topic->Order Management->One of the crucial aspects of trading automation is the management of orders. The system operates with assumptions that must be verified and synchronized with the exchange. Learning how the Low-Frequency Trading Bot manages orders will help you understand the life cycle of orders and how your definitions in the Open Stage and the Close Stage affect the results.",
"updated": 1611237227549
"text": "VIII->Superalgos->Topic->LF Trading Bot Available Data Structures->This chapter describes the three main data structures made available by the Trading Bot.",
"updated": 1617708146321
},
{
"style": "Chapter",
"text": "IX->Superalgos->Topic->Order Management->One of the crucial aspects of trading automation is the management of orders. The system operates with assumptions that must be verified and synchronized with the exchange. Learning how the Low-Frequency Trading Bot manages orders will help you understand the life cycle of orders and how your definitions in the Open Stage and the Close Stage affect the results.",
"updated": 1617708175194
},
{
"style": "Text",
@@ -51,8 +56,8 @@
},
{
"style": "Chapter",
"text": "IX->Superalgos->Topic->Trading Engine->The trading engine is about making the data processed by the Trading Bot accessible. Use it while debugging strategies to visually track every piece of information processed by the trading bot at any point in time. Use it from within trading systems to feed strategies with the details of what happens at runtime.",
"updated": 1611260954268
"text": "X->Superalgos->Topic->Trading Engine->The trading engine is about making the data processed by the Trading Bot accessible. Use it while debugging strategies to visually track every piece of information processed by the trading bot at any point in time. Use it from within trading systems to feed strategies with the details of what happens at runtime.",
"updated": 1617708180990
},
{
"style": "Text",
@@ -60,38 +65,38 @@
},
{
"style": "Chapter",
"text": "X->Superalgos->Topic->Trading Farms->Superalgos may coordinate Data Tasks and Trading Tasks across different machines on a network. Trading farms provide a robust environment for smart and scalable deployments.",
"updated": 1611503033139
"text": "XI->Superalgos->Topic->Trading Farms->Superalgos may coordinate Data Tasks and Trading Tasks across different machines on a network. Trading farms provide a robust environment for smart and scalable deployments.",
"updated": 1617708186995
},
{
"style": "Chapter",
"text": "XI->Superalgos->Topic->Crypto Ecosystem->The crypto ecosystem manages the interactions with parties external to Superalgos, primarily exchanges. ",
"updated": 1611503004599
"text": "XII->Superalgos->Topic->Crypto Ecosystem->The crypto ecosystem manages the interactions with parties external to Superalgos, primarily exchanges.",
"updated": 1617708192899
},
{
"style": "Chapter",
"text": "XII->Superalgos->Topic->Data Mines->Data Mines deal with bots that process data and feature a visual scripting framework that solves most all of the infrastructure intricacies of building indicators and plotters.",
"updated": 1611503425133
"text": "XIII->Superalgos->Topic->Data Mines->Data Mines deal with bots that process data and feature a visual scripting framework that solves most all of the infrastructure intricacies of building indicators and plotters.",
"updated": 1617708198397
},
{
"style": "Chapter",
"text": "XIII->Superalgos->Topic->Integrations->Superalgos integrates with Telegram Bots to broadcast announcements emerging from trading sessions. On the other hand, Superalgos supports receiving webhook messages, enabling automated actions originating from messages sent from third-party services, like TradingView.",
"updated": 1611503645995
"text": "XIV->Superalgos->Topic->Integrations->Superalgos integrates with Telegram Bots to broadcast announcements emerging from trading sessions. On the other hand, Superalgos supports receiving webhook messages, enabling automated actions originating from messages sent from third-party services, like TradingView.",
"updated": 1617708209659
},
{
"style": "Chapter",
"text": "XIV->Superalgos->Topic->Productivity Tools->This chapter discusses a collection of tools that help optimize productivity.",
"updated": 1611503697142
"text": "XV->Superalgos->Topic->Productivity Tools->This chapter discusses a collection of tools that help optimize productivity.",
"updated": 1617708217018
},
{
"style": "Chapter",
"text": "XV->Superalgos->Topic->Troubleshooting->Superalgos is a vast system and you will run into confusing situations while learning it. You must acquire the knowledge on how to analyze the issues that you may encounter. There usually is a good explanation for what is going on. This chapter helps you in that process.",
"updated": 1611649840313
"text": "XVI->Superalgos->Topic->Troubleshooting->Superalgos is a vast system and you will run into confusing situations while learning it. You must acquire the knowledge on how to analyze the issues that you may encounter. There usually is a good explanation for what is going on. This chapter helps you in that process.",
"updated": 1617708223623
},
{
"style": "Chapter",
"text": "XVI->Superalgos->Topic->Contributing to Superalgos->Superalgos is a Community project. Everything you build with Superalgos is susceptible to be contributed to the project. Contributing to the project earns you Superalgos (SA) tokens! This chapter covers how you may contribute some of the intelligence you build for yourself, and also how you may get involved with the project at a deeper level.",
"updated": 1617094031124
"text": "XVII->Superalgos->Topic->Contributing to Superalgos->Superalgos is a Community project. Everything you build with Superalgos is susceptible to be contributed to the project. Contributing to the project earns you Superalgos (SA) tokens! This chapter covers how you may contribute some of the intelligence you build for yourself, and also how you may get involved with the project at a deeper level.",
"updated": 1617708229948
},
{
"style": "Text",
@@ -1,8 +1,8 @@
{
"type": "Default Exchange",
"definition": {
"text": "The Default Exchange is the one referenced by the Exchange Data Tasks, Exchange Trading Tasks, Exchange Learning Tasks nodes of which a certain Task decends from. The Trading Bot running inside that Task will considere that referenced exchange to be it's Default Exchange.",
"updated": 1612352828045
"text": "The Default Exchange is the one referenced by the Exchange Data Tasks, Exchange Trading Tasks, and Exchange Learning Tasks nodes from which a certain Task descends. The Trading Bot Instance running under that Task will consider the referenced Crypto Exchange to be the Default Exchange for the said Task.",
"updated": 1617616790868
},
"paragraphs": [
{
@@ -16,9 +16,21 @@
"style": "List",
"text": "codeName is the name or label of your key, as supplied by the exchange."
},
{
"style": "List",
"text": "secret is the secret key supplied by the exchange."
},
{
"style": "List",
"text": "uid is the uid supplied by the exchange. This is not required for all exchanges."
},
{
"style": "List",
"text": "password is the password or passphrase supplied at the creation of the key and secret. This is not required for all exchanges."
},
{
"style": "Warning",
"text": "To keep your exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing."
}
]
}
}
@@ -56,7 +56,8 @@
},
{
"style": "Text",
"text": "Setting up a reference to a time machine node in the charting space hierarchy while using the below parameter causes the following:"
"text": "Setting up a reference to a time machine node in the Charting Space hierarchy while using the below parameter causes the following:",
"updated": 1617706853889
},
{
"style": "List",
@@ -81,7 +82,8 @@
},
{
"style": "Text",
"text": "Setting up a reference to a time machine node in the charting space hierarchy and using the below parameters allows simulating the pressing of relevant key combinations when on a time machine."
"text": "Setting up a reference to a time machine node in the charting space hierarchy and using the below parameters allows replicating the pressing of relevant key combinations when on a time machine.",
"updated": 1617706916777
},
{
"style": "Javascript",
@@ -103,17 +105,22 @@
},
{
"style": "Text",
"text": "The batchConfigChangesReferenceParent parameter allows you to edit the configuration of a referenced node and their offspring.",
"updated": 1613846892311
"text": "The batchConfigChangesReferenceParent property allows you to edit the configuration of a referenced node and their offspring.",
"updated": 1617707009812
},
{
"style": "Text",
"text": "The example below changes the configuration of the three different scale nodes under a time machine. In this case, the time machine is the node referenced, the nodePath is the path of the node whose configuration must be changed relative to the referenceParent, and the properties parameter is the actual configuration to be set."
},
{
"style": "Javascript",
"text": " \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11400,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ]",
"updated": 1613846829780
"style": "Json",
"text": "\"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11400,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ]",
"updated": 1617707082553
},
{
"style": "Success",
"text": "A typical use case for this resource is when you wish to bring to user to a specific point in a chart, but it may be used for any other case that requires manipulating node's configurations.",
"updated": 1617707174287
}
]
}
@@ -1,8 +1,8 @@
{
"type": "Tutorial",
"definition": {
"text": "The tutorial hierarchy features a free arrangement of Tutorial Topic and Tutorial Step nodes that make up a tutorial. Each node in the hierarchy, including the parent tutorial node, represents an HTML page that is overlaid on top of both the design space and the charting space.",
"updated": 1613839026788
"text": "The tutorial hierarchy features a free arrangement of Tutorial Topic and Tutorial Step nodes that make up a tutorial. Each node in the hierarchy, including the parent tutorial node, represents an HTML page that may be overlaid on top of both the Design Space and the Charting Space.",
"updated": 1617610222444
},
"paragraphs": [
{
@@ -11,18 +11,23 @@
},
{
"style": "Text",
"text": "Nodes in the hierarchy may be arranged freely, meaning that there may be as many tutorial topics and tutorial steps as desired. ",
"updated": 1613839088895
"text": "Nodes in the hierarchy may be arranged freely, meaning that there may be as many tutorial topics and tutorial steps as desired. Tutorial topics may contain tutorial steps but also other tutorial topics. This allows nesting topics to be used as subtopics.",
"updated": 1617649482153
},
{
"style": "Text",
"text": "In general terms, all types of nodes behave similarly in the sense that each node, independently of the precise type, represents a tutorial step in and of itself. Subtle differences shall be covered where appropriate.",
"updated": 1613839117191
"text": "The system – as usual – evaluates the hierarchy in a clockwise direction starting from the node to the right of the parent Tutorial node, and goes to the deepest node of each branch before moving to the next one.",
"updated": 1617649522223
},
{
"style": "Success",
"text": "The key similarity among all types of nodes in the hierarchy is that all of them may draw content from a tutorial page in the Docs.",
"updated": 1613839286982
"style": "Callout",
"text": "In general terms, all types of nodes behave similarly in the sense that each node, independently of the precise type, represents a tutorial step in and of itself. That is, all nodes including the top-level Tutorial node, the Tutorial Topic node, and the Tutorial Step node may display a content page as a step in the tutorial. Subtle differences shall be pointed where appropriate.",
"updated": 1617622995279
},
{
"style": "Note",
"text": "The key similarity among all types of nodes in the hierarchy is that all of them may draw content from the tutorial's collection of pages in the Docs. That is, each node in the hierarchy points to a Docs Page, and it is that page in the Docs that features the content displayed for the given step. The pointer is specified in the configuration of each node (see the docs property).",
"updated": 1617623101039
},
{
"style": "Block",
@@ -35,33 +40,70 @@
},
{
"style": "Text",
"text": "The configuration of each node in the tutorial hierarchy determines the content and behavior of each step. All types of nodes share the same basic configuration. However, Tutorial Step nodes have extra properties, described elsewhere.",
"updated": 1613839329036
"text": "The configuration of each node in the tutorial hierarchy determines the content and behavior of each step. All types of nodes share the same basic configuration. However, Tutorial Step nodes have extra properties, described on the Tutorial Step node page.",
"updated": 1617623609988
},
{
"style": "Success",
"text": "The configuration properties discussed on this page apply to all types of nodes in the hierarchy.",
"updated": 1617623631110
},
{
"style": "Text",
"text": "The layout of the HTML page follows the layout of the referenced page in the Docs, although displayed within the confines of the tutorial window. ",
"updated": 1613839417342
"text": "The layout of the HTML page follows the layout of the associated page in the Docs, although displayed within the confines of the tutorial window.",
"updated": 1617610416865
},
{
"style": "Callout",
"text": "In other words, you affect the layout of the step by writing content and applying styles to individual paragraphs in the associated Docs Page.",
"updated": 1613839489189
"text": "In other words, you affect the layout of the particular step by writing content and applying styles to individual paragraphs in the associated Docs Page.",
"updated": 1617610435932
},
{
"style": "Note",
"text": "The HTML page features a limited space and does not support scrolling. If too much information is defined in the associated Docs Page, the resulting content overflows the available space in the tutorial window. There is no system-side control to deal with such overflows, so it's up to you to spread information across multiple steps and keep each page within its limits.",
"updated": 1613839536547
},
{
"style": "Title",
"text": "Configuration Properties",
"updated": 1617635291377
},
{
"style": "Subtitle",
"text": "Properties",
"updated": 1609705050135
"text": "icon",
"updated": 1617635214170
},
{
"style": "Text",
"text": "The property icon requires two definitions:",
"updated": 1617635366207
},
{
"style": "List",
"text": "icon: the name and project of one of the icons stored in the \\Projects\\[Project-Name]\\Iconsfolder, without the extension. When the configuration exists, the icon is placed within a table, on the left-hand side of the text block featured in the definition field. When there is no icon, the definition occupies the full width.",
"updated": 1613840648780
"text": "The \"name\" of the icon without the extension; "
},
{
"style": "List",
"text": "The \"project\" the icon belongs to."
},
{
"style": "Text",
"text": "For your reference, icons are stored in the following path:"
},
{
"style": "Json",
"text": "\\Projects\\[Project-Name]\\Icons",
"updated": 1617610685030
},
{
"style": "Success",
"text": "Use the existing collection of icons to illustrate each step of the tutorial. These illustrations help make for more compelling communication.",
"updated": 1617623866873
},
{
"style": "Text",
"text": "When the configuration exists, the icon is placed within a table, side by side with the text block that makes up the definition field of the associated Docs Page. When there is no icon, the definition occupies the full width of the page.",
"updated": 1617635415677
},
{
"style": "Json",
@@ -69,9 +111,19 @@
"updated": 1613840669552
},
{
"style": "List",
"text": "position: determines the position of the floating HTML. There are three alternatives... \"Left\", \"Right\", or leave the field empty to position the page in the center of the screen.",
"updated": 1613842749882
"style": "Text",
"text": "The above configuration places the balance.png icon of the Superalgos project in the table of the corresponding Docs page (see the docs property below).",
"updated": 1617635461827
},
{
"style": "Subtitle",
"text": "position",
"updated": 1617635475423
},
{
"style": "Text",
"text": "The position property determines the position of the floating HTML. There are three alternatives... \"Left\", \"Right\", or leave the field empty to position the page on the center of the screen.",
"updated": 1617635484212
},
{
"style": "Json",
@@ -79,18 +131,47 @@
"updated": 1613840787300
},
{
"style": "List",
"text": "slider: determines the position of the horizontal slider. There are three alternatives... \"toTop\", \"toBottom\", \"toMiddle\".",
"updated": 1613842783566
"style": "Text",
"text": "The configuration above places the tutorial step on the left-hand side of the screen.",
"updated": 1617635642707
},
{
"style": "Subtitle",
"text": "slider",
"updated": 1617635668767
},
{
"style": "Text",
"text": "The slider property determines the position of the horizontal slider. There are three alternatives... \"toTop\", \"toBottom\", \"toMiddle\"."
},
{
"style": "Json",
"text": "\"slider\": \"toBottom\""
"text": "\"slider\": \"toBottom\" // Opens the Charting Space",
"updated": 1617624084984
},
{
"style": "List",
"text": "pressButton: allows you to forcefully \"Stop\" the tutorial, go to the \"Next\" step, go to the \"Previous\" step, or \"Skip\" a step. When a step is loaded and one of these options is configured in this property, the action is applied immediately. A common use of this feature is to skip a step, for instance, a Tutorial Topic node that is used solely for organizational purposes within the hierarchy, thus has no content.",
"updated": 1613842824873
"style": "Json",
"text": "\"slider\": \"toTop\" // Opens the Design Space",
"updated": 1617624125599
},
{
"style": "Json",
"text": "\"slider\": \"toMiddle\" // Enables using the Charting Space and the Design Space concurrently",
"updated": 1617624154127
},
{
"style": "Subtitle",
"text": "pressButton",
"updated": 1617635952027
},
{
"style": "Text",
"text": "The pressButton property allows you to forcefully \"Stop\" the tutorial, go to the \"Next\" step, go to the \"Previous\" step, or \"Skip\" a step. When a step is loaded and one of these options is configured in this property, the action is applied immediately."
},
{
"style": "Note",
"text": "A common use of this feature is to skip a step, for instance, a Tutorial Topic node that is used solely for organizational purposes within the hierarchy, thus features no content. Leave the field empty for the step to play in the usual fashion.",
"updated": 1617649582774
},
{
"style": "Json",
@@ -98,9 +179,24 @@
"updated": 1613841332185
},
{
"style": "List",
"text": "docs: the property is used to reference the Docs Tutorial Page that feeds content to the particular tutorial step. The definition requires the name of the Project, the Docs Page Category which is always Tutorial, and the complete name of the tutorial step page.",
"updated": 1613841395148
"style": "Text",
"text": "The above configuration takes the user to the next step in the tutorial without displaying any content for the node in question.",
"updated": 1617648136262
},
{
"style": "Success",
"text": "You may use Tutorial Topic nodes for organizational purposes only, for instance, to arrange the hierarchy in a way that it's easy to read and maintain. Topics with too many steps are harder to deal with later on. In other words, you may use a Tutorial Topic node to group several steps, even if you don't intend the Tutorial Topic node to display any content. In such cases, you may use this property to skip the step that is not intended for content display.",
"updated": 1617649616576
},
{
"style": "Subtitle",
"text": "docs",
"updated": 1617636114812
},
{
"style": "Text",
"text": "The docs property is used to point to the Docs Tutorial Page that feeds content to the particular tutorial step. The definition requires the name of the Project, the Docs Page Category which is always \"Tutorial\", and the complete name of the Docs Page, that is, the \"type\" as specified in the JSON file.",
"updated": 1617648211414
},
{
"style": "Json",
@@ -108,14 +204,92 @@
"updated": 1613842164831
},
{
"style": "List",
"text": "controlDocs: the property is used to control the behavior of the Docs panel. The panel property may be set to \"Open\" or \"Close\". The property closeTutorialEditor may switch on (true) and off (false) the Docs editor. When set to false, the Docs panel shows the page corresponding to the active tutorial step or the page in the Docs that is requested. When the property is set to true and there is no request to open a Docs page, then the Docs panel shows the search box. The page property is where you define which page in the Docs must be loaded. You must specify the Project, the Docs Page Category, and the type which is the complete name of the page.",
"updated": 1613843493276
"style": "Subtitle",
"text": "controlDocs",
"updated": 1617648219190
},
{
"style": "Text",
"text": "The property is used to control the behavior of the Docs panel. Within controlDocs, several properties are available, and all of them are optional. Let's review each in detail."
},
{
"style": "Text",
"text": "The panel property may be set to \"Open\" or \"Close\". This property controls the tab that allows you to open the Docs Panel in one step, and close it on a different step when it's no longer needed.",
"updated": 1617649653900
},
{
"style": "Json",
"text": " \"controlDocs\": {\n \"panel\": \"Open\",\n \"closeTutorialEditor\": true,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Trading System Hierarchy\"\n }\n }",
"updated": 1613842185832
"text": "\"controlDocs\": {\n \"panel\": \"Open\",\n }",
"updated": 1617634451884
},
{
"style": "Text",
"text": ""
},
{
"style": "Success",
"text": "If the Docs Panel is closed, the rest of the properties are somehow irrelevant. However, when the Docs Panel is open, the rest of the properties control what is displayed in the Docs Panel.",
"updated": 1617635061507
},
{
"style": "Text",
"text": "The property closeTutorialEditor may switch on and off the Docs editor. When set to false or when there is no definition, and provided no specific Docs Page is called (see controlDocs below), the Docs panel shows the page associated with the current tutorial step in editing mode.",
"updated": 1617649781891
},
{
"style": "Json",
"text": "\"controlDocs\": {\n \"panel\": \"Open\",\n \"closeTutorialEditor\": false,\n }",
"updated": 1617648310737
},
{
"style": "Success",
"text": "Because this definition is set to false by default, this is the usual behavior. That is, by default, when the Docs Panel is opened while a tutorial step is playing, the Docs Panel shows the Docs Page associated with the specific step so that the page may be edited right then and there.",
"updated": 1617648335347
},
{
"style": "Text",
"text": "When the closeTutorialEditor property is set to true and there is no request to open a Docs page (see page property below), then the Docs panel shows whatever Docs Page was being displayed in the previous step.",
"updated": 1617648434580
},
{
"style": "Json",
"text": "\"controlDocs\": {\n \"panel\": \"Open\",\n \"closeTutorialEditor\": true,\n }",
"updated": 1617634444688
},
{
"style": "Success",
"text": "You may want to close the tutorial editor when the user is supposed to interact with the Docs from one step to the next. For example, let's say the tutorial instructs the user to run a search and discusses the search results in the following step. In that case, you will want the tutorial editor to remain closed, as otherwise, the search performed by the user would be lost, and instead the page corresponding to the new tutorial step would be loaded.",
"updated": 1617649832578
},
{
"style": "Text",
"text": "The searchPage property overruns the tutorial editor settings and loads the home search page featuring the search box in the center.",
"updated": 1617649861459
},
{
"style": "Json",
"text": "\"controlDocs\": {\n \"panel\": \"Open\",\n \"searchPage\": true,\n }",
"updated": 1617648855034
},
{
"style": "Success",
"text": "Use the above setting when you wish the user to get the clean search box to make a search or run a command.",
"updated": 1617648884933
},
{
"style": "Text",
"text": "The page property is where you define which Docs Page must be loaded. You must specify the Project, the Docs Page Category, and the \"type\" which is the complete name of the page. The optional property anchor allows you to points the user to a specific paragraph in the page with the Docs Anchor Style.",
"updated": 1617649332425
},
{
"style": "Json",
"text": "\"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Syntax Overview\",\n \"anchor\": \"Previous Property\"\n }\n }",
"updated": 1617649170254
},
{
"style": "Success",
"text": "Use the above configuration when you wish the user to read a specific page in the Docs.",
"updated": 1617649085529
}
]
}
@@ -0,0 +1,40 @@
{
"review": "Superalgos Project Review",
"pageNumber": 7,
"type": "Superalgos Review - Feature-rich platform for algorithmic trading",
"definition": {
"text": "The possibilities are endless when you are in control of the platform. Superalgos allows the end-user to create sophisticated trading strategies through a visual designer with built-in backtesting capabilities based on historical market data.",
"updated": 1618174871748
},
"paragraphs": [
{
"style": "Text",
"text": "After more time than I care to admit executing crypto trades manually, I began to wonder what tools successful traders were able to leverage to quickly recognize and respond to market indicators. I started looking for a trading bot that I could leverage to make trades, but quickly realized that most of the software available today required me to give my account information to a service hosted by someone else.",
"updated": 1618175562829
},
{
"style": "Text",
"text": "Superalgos, a community-developed open-source project, does not work in that way at all. With SA, I’m able to run the software from my own device without relying on anyone else for the necessary infrastructure. I don’t need to pay a monthly subscription, and I don’t need to worry about my trading account security being at risk. "
},
{
"style": "Text",
"text": "It does, however, require a bit of patience and attention to gain an understanding of the fundamental concepts. A familiarity with coding, particularly in Javascript, is helpful, but not necessary to execute successful strategies. The tool features an entirely visual scripting designer to help create and debug your very own strategies and indicators. Once your strategy is designed, the tool has built-in backtesting capabilities that leverage downloaded historical market data, giving you peace of mind that your strategy is fully tested before moving on to live trading. "
},
{
"style": "Text",
"text": "Out of the box, there are several community-built strategies to learn from. In fact, the community is perhaps the most highly underrated feature included with the tool! A healthy set of contributors and a dedicated group of users who are willing to share and contribute their time and effort has seen this project enjoy rapid growth. "
},
{
"style": "Text",
"text": "I have personal experience with the speed at which features can be developed, and problems can be addressed; it’s quite astonishing! As an open-sourced project, the capabilities of Superalgos are limitless."
},
{
"style": "Text",
"text": "Thaddeus McCloud"
},
{
"style": "Text",
"text": "raubot "
}
]
}
@@ -0,0 +1,24 @@
{
"review": "Superalgos Project Review",
"pageNumber": 7,
"type": "Superalgos Review - Initial Thoughts",
"definition": {
"text": "My initial thoughts on Superalgos.",
"updated": 1618134889544
},
"paragraphs": [
{
"style": "Text",
"text": "The first thought that came to my mind was how well documented, polished and presented Superalgos is. Considering the shear amount of knowledge to be conveied to a new user, the tutorials move at a the right pace as to not overwhelm.",
"updated": 1618134839988
},
{
"style": "Text",
"text": "Having written my own basic trading interface and bots using python, I look forward to not having to worry about software edge cases or outcomes I hadn't considered. Only through the work of a focussed community team can these issues be effectivly solved."
},
{
"style": "Text",
"text": "Wish I'd found this earlier. Can't wait to dig in. "
}
]
}
@@ -0,0 +1,409 @@
{
"topic": "Contributing to Superalgos",
"pageNumber": "6",
"type": "How to Contribute Tutorials",
"definition": {
"text": "Tutorials are the ultimate educational resource available in Superalgos, and they play a crucial role during the onboarding of new users. Contributing tutorials is a great way to help the project grow the user base and is highly appreciated!",
"updated": 1617710488028
},
"paragraphs": [
{
"style": "Text",
"text": "This page discusses best practices to build and contribute Superalgos tutorials. It doesn't cover the actual mechanics of building tutorials. Instead, it focuses on what is desirable.",
"updated": 1617732597782
},
{
"style": "Title",
"text": "The Quest for Quality",
"updated": 1617710819169
},
{
"style": "Text",
"text": "At Superalgos, we take pride in the quality of the product we are building. Documentation and tutorials are crucial parts of Superalgos.",
"updated": 1617732636344
},
{
"style": "Text",
"text": "That said, we understand that it takes time and effort to get to a quality product, thus iterating on early prototypes and implementing early-stage feedback is a good way to achieve the desired quality standards.",
"updated": 1617732666027
},
{
"style": "Success",
"text": "When you build a tutorial for Superalgos, you become the maintainer of the tutorial. It is your responsibility to keep the tutorial up to date with the system, and to implement the feedback users may share! Your tutorial must become the ultimate resource to learn the topics it covers.",
"updated": 1617712109958
},
{
"style": "Title",
"text": "The Associated Workspace",
"updated": 1617712309440
},
{
"style": "Text",
"text": "To deliver the best possible experience, a tutorial must be featured in a specific Workspace, and the workspace must be custom-tailored to serve the tutorial. The workspace must be clean and feature the assets required for the learning experience to be optimal. It is best to keep the workspace clean, light, and stripped of unnecessary resources.",
"updated": 1617732813825
},
{
"style": "Title",
"text": "Tutorial Series & Planning",
"updated": 1617712970783
},
{
"style": "Text",
"text": "Some topics are broad, have ramifications, or require a nuanced analysis to be covered thoroughly. In such cases, planning for a series of tutorials is ideal.",
"updated": 1617712578718
},
{
"style": "Text",
"text": "Take, for example, the series of tutorials in the Trading System Design Tutorials Plugin Workspace:",
"updated": 1617712745906
},
{
"style": "List",
"text": "The first tutorial in the series gives a broad introduction to the topic, mostly in conceptual terms. This allows users to see the big picture and learn how the concepts are structured and why they are structured the way they are."
},
{
"style": "List",
"text": "The second tutorial in the series proposes an exercise that takes several more tutorials to develop and implement. That is, the tutorial sets the basis for what the series will cover.",
"updated": 1617732839409
},
{
"style": "List",
"text": "The remaining tutorials in the series dissect the exercise proposed earlier and cover with a fine level of detail the implementation. At the same time, they cover all the context and many lateral topics.",
"updated": 1617732881797
},
{
"style": "Note",
"text": "The whole series threads a common theme and develops it from the simplest to the most complex concepts, step by step. A tutorial series must be exhaustive and eventually, cover the whole topic. It must become the ultimate tool to learn about the subject matter!",
"updated": 1617732933799
},
{
"style": "Title",
"text": "The Target Audience",
"updated": 1617713465981
},
{
"style": "Text",
"text": "People are different. We all have slightly different wirings in our heads, and we all learn differently. In that sense, building tutorials is a bit of a challenge. Some people like tutorials that go straight to the point and show them how to solve a very specific issue. Others prefer tutorials that get to the bone, explain every detail, and properly cover the context.",
"updated": 1617733011186
},
{
"style": "Text",
"text": "At this early stage, we can't afford to duplicate efforts and build different tutorials for different kinds of learners. We have to choose the method that best serves the project.",
"updated": 1617714108723
},
{
"style": "Important",
"text": "We choose to focus on building comprehensive tutorials that everyone can follow and that leaves no one behind. We believe that a tutorial that goes slow, covering every detail, and taking the time to explain the nuance is the right approach at this stage. By building tutorials in a such manner, we guarantee that those who are willing to invest the time to learn the system have adequate material to quickly become power users.",
"updated": 1617733086141
},
{
"style": "Text",
"text": "Such tutorials may be slightly annoying to fast-learners, or to people that just want a specific question answered. But such needs are already covered by the searchable knowledge base comprised in the Docs.",
"updated": 1617714293925
},
{
"style": "Title",
"text": "Communication Resources",
"updated": 1617720397017
},
{
"style": "Text",
"text": "Let's get into some of the specifics on building tutorials for Superalgos!",
"updated": 1617720149756
},
{
"style": "Callout",
"text": "Superalgos tutorials have evolved through several months worth of feedback from early adopters. We feel we have found a sweet spot, and have started to develop a style in the way we use the space available in each tutorial step. The following are some notes that will help you build tutorials that match the format of existing tutorials.",
"updated": 1617733117832
},
{
"style": "Title",
"text": "Consistent Use of Space and Styles",
"updated": 1617904223037
},
{
"style": "Text",
"text": "Use the different sections on the page and the different paragraph styles for consistent purposes. This helps users get accustomed to a certain format so that they know what to expect from each section of the page. Consistency in the way the information is delivered makes tutorials more usable!"
},
{
"style": "Subtitle",
"text": "The Definition Box"
},
{
"style": "Text",
"text": "The definition box is the space to the right of the icon, below the title. Use this space to introduce what the step is about, that is, to set up the story the step will tell, or to provide some basic context. ",
"updated": 1617902992986
},
{
"style": "Note",
"text": "To use the definition box correctly, explain the context in four to five lines. Avoid one or two lines or anything over five.",
"updated": 1617903200520
},
{
"style": "Subtitle",
"text": "The Call For Action"
},
{
"style": "Text",
"text": "The most important section on any given step is the call for action, that is, the instruction that the user must follow to progress in the tutorial. Many times users redo tutorials or go back a few steps just to make sure they did everything right. ",
"updated": 1617904108044
},
{
"style": "Callout",
"text": "Always use the callout style — the one applied to this paragraph — for the call for action! Similarly, try to avoid using this style for anything else. If the particular step doesn't have a call for action, then the step should not feature this style at all!"
},
{
"style": "Text",
"text": "Each tutorial step should have a single call for action, that is, a single instruction that the user must carry out. This is the ideal case scenario. There may be exceptions, for example, when we ask the user to read a page in the Docs and do something else as the main instruction.",
"updated": 1617904124728
},
{
"style": "Success",
"text": "In general terms and when possible, try to avoid giving the user more than one task on the same step. Instead, if you expect the user to perform several sequential actions, try to split the process into more than one step — as many as it takes.",
"updated": 1617904133804
},
{
"style": "Text",
"text": "In some cases, you may need the user to take a very simple action so that the main call for action may be delivered. In such cases, you may use the definition box to tell the user how to get ready to execute the call for action delivered later in the page."
},
{
"style": "Subtitle",
"text": "Alternating Colors",
"updated": 1617906135945
},
{
"style": "Text",
"text": "Colorful tutorial steps look great, while a white pages full of text feel too much like non-interactive documentation. Makes sure you break the monotony with the four different styles of boxes:",
"updated": 1617906625458
},
{
"style": "Success",
"text": "This is great for additional tips."
},
{
"style": "Note",
"text": "Use this every once in a while to break up otherwise large sections of plain text."
},
{
"style": "Important",
"text": "Leave this box for the truly important stuff. Things you don't want users to overlook or forget.",
"updated": 1617906591147
},
{
"style": "Warning",
"text": "And this one, save it for real warnings. Things that may represent a threat or risk.",
"updated": 1617906578635
},
{
"style": "Title",
"text": "Use of Docs Pages"
},
{
"style": "Text",
"text": "When you need the user to learn about a specific concept to get the proper context on the subject, do not replicate in the tutorial information that exists in the Docs. Duplicating information is not a good idea, as it makes it harder to maintain the Docs and tutorials.",
"updated": 1617730695174
},
{
"style": "Success",
"text": "Asking the user to read a page or a section of a page in the Docs is the correct approach. This has the added benefit of making the user aware that the Docs cover the topic too.",
"updated": 1617724009821
},
{
"style": "Important",
"text": "If you find that the relevant page in the Docs is outdated, doesn't cover the topic with the appropriate depth, or maybe even doesn't exist, helping create, complete, and/or improve the delivery of the information in the Docs is just as valuable as building the tutorial! Long format explanations do not fit well in tutorials. They do fit well in the Docs!",
"updated": 1617733203373
},
{
"style": "Title",
"text": "Interactivity",
"updated": 1617724494717
},
{
"style": "Text",
"text": "The whole point of tutorials — and the main difference with the Docs as learning material — is that they offer the opportunity for hands-on learning. Tutorials are interactive while the Docs are less so!",
"updated": 1617730782624
},
{
"style": "Callout",
"text": "Make sure you use this quality to the fullest, but also try to maintain a certain balance!",
"updated": 1617725782977
},
{
"style": "List",
"text": "If the tutorial is talking about a hierarchy, a group of nodes, or a particular node, make sure that the tutorial step takes you to that place in the Workspace. This adds a visual element to the explanation and helps the user get familiar with the data structures involved.",
"updated": 1617725808080
},
{
"style": "List",
"text": "Tutorials can affect the Workspace in many ways replicating actions the user may do. When you want the user to learn to do something, it's best to ask the user to do it, instead of having the tutorial do it for the user.",
"updated": 1617733271488
},
{
"style": "List",
"text": "On the other hand, the tutorial should take care of doing certain things that are not conducive to learning something relevant to the context of the tutorial. Performing these actions directly may help keep the user focused on what matters most.",
"updated": 1617733297397
},
{
"style": "List",
"text": "In some cases, the actions users take may have certain effects. Showing users the outcome of their actions immediately after completing a task has a great educational value. For example, if the user is setting up a new Time Machine in a tutorial about the Charting Space, show users how the time machine appears in the charting space immediately after creating it. If users then set up a Timeline Chart that references a particular Data Mine, show users how the new Timeline Chart appears within the Time Machine, and let them verify that the expected layer managers are there. Don't be afraid to go back and forth... that is the whole point after all!",
"updated": 1617905020985
},
{
"style": "Title",
"text": "Tooltips",
"updated": 1617731886888
},
{
"style": "Text",
"text": "The system recognizes the name of all entities that have a Docs Page when the name of the entity is written in title case. When that happens, the system automatically creates a tooltip for the phrase. This is a valuable resource, as it provides context that you don't need to explain.",
"updated": 1617731953773
},
{
"style": "Text",
"text": "Make sure you use this resource wisely, as too many tooltips on a single tutorial page may be overwhelming, and probably irrelevant."
},
{
"style": "Success",
"text": "When you believe the tooltip is relevant, then write the name of the entity in title case. If the tooltip is not relevant, then write the name of the entity in lower case.",
"updated": 1617733407351
},
{
"style": "Title",
"text": "Naming of Nodes",
"updated": 1617731585276
},
{
"style": "Text",
"text": "Superalgos is a complex system. Helping users develop good organizational habits is highly desirable. The more top-level users we may help form, the more powerful the project becomes.",
"updated": 1617732614881
},
{
"style": "Text",
"text": "When users create new data structures, it's good practice to have them name the relevant nodes. This is particularly important with nodes that pass on their names through references to other nodes.",
"updated": 1617733435330
},
{
"style": "Note",
"text": "Make sure your tutorial goes the extra mile and reminds users to name those kinds of nodes. Proposing a specific name is ideal. Remember that the user may not know what comes next or what the node is used for at the time of creation, so they may not know what a relevant name may be. But you do, so you may propose a name that is consistent with the tutorial's goal.",
"updated": 1617731598259
},
{
"style": "Title",
"text": "Look & Feel",
"updated": 1617722154194
},
{
"style": "Text",
"text": ""
},
{
"style": "Text",
"text": "There is a philosophical debate on whether beauty is objective or subjective. Some people think beauty is in the eyes of the beholder, while others believe that there are inherently beautiful things.",
"updated": 1617733474625
},
{
"style": "Callout",
"text": "Whatever the case may be, we want the overall look & feel of tutorials to be consistent!",
"updated": 1617733495986
},
{
"style": "Text",
"text": "Here's a list of requirements that help tutorials be consistent in their look & feel:",
"updated": 1617722868882
},
{
"style": "List",
"text": "Always use an icon to illustrate the step. Sometimes the appropriate icon is the one corresponding to the node the user is working with. Other times you may use icons figuratively, playing with alternate meanings of what the drawing may represent."
},
{
"style": "List",
"text": "Avoid stud step pages. Steps with very little content seem empty and feel strange. You don't need to feel the space with gibberish or unnecessary information. Instead, try to use the space to provide context for the call for action. Explain why the user is asked to do this or that. Let the user know what may be expected from the action and so on.",
"updated": 1617733584684
},
{
"style": "List",
"text": "As a corollary of the above, the opposite case may be problematic too. That is, when the content barely fits the page and gets too close to the row of buttons fixed at the bottom of each step. The problem is that some browsers / OS combinations render styles slightly differently, and what may seem close to the buttons in one system may overlap the buttons in the next. Try to level at least one full empty line — preferably two.",
"updated": 1617733668851
},
{
"style": "List",
"text": "Do not set two consecutive paragraphs with the same style. The only exception is for bullet lists. Even the Docs Text Style is not formated to look good as consecutive paragraphs in the context of a tutorial (there is no padding between paragraphs).",
"updated": 1617723650896
},
{
"style": "Title",
"text": "Titles"
},
{
"style": "Text",
"text": "Always use proper title case for titles. But, what exactly is proper title case? Let's agree to the standard propose in this blog post:",
"updated": 1617902503383
},
{
"style": "Link",
"text": "Capitalization of titles 101->www.grammarcheck.net/capitalization-in-titles-101/",
"updated": 1617902444077
},
{
"style": "Success",
"text": "Titles look best when they span a single line. Use two-line titles only if strictly necessary!",
"updated": 1617902549247
},
{
"style": "Subtitle",
"text": "Unique Identifiers",
"updated": 1617905396529
},
{
"style": "Important",
"text": "Remember that the title of a tutorial step is also the unique identifier of the corresponding Docs Page. This means that the system does not allow for duplicate titles. Avoid at all costs naming pages after single words or short phrases. Let's leave those unique names for particular cases that may merit the use of such special phrases."
},
{
"style": "Text",
"text": "For the same reason, all titles should begin with the following fixed string of text:",
"updated": 1617905464492
},
{
"style": "Json",
"text": "Tutorial Step - ",
"updated": 1617905492001
},
{
"style": "Text",
"text": "The above helps reserve some phrases for contexts different than tutorials.",
"updated": 1617905844332
},
{
"style": "Success",
"text": "Don't worry! Your titles will not look ugly in the tutorial, as the system filters the prefix and doesn't show it in the tutorial window!",
"updated": 1617905922481
},
{
"style": "Title",
"text": "Proper English",
"updated": 1617733994160
},
{
"style": "Text",
"text": "There are at least two reasons why it's desirable to have spell and grammar-checked tutorials:",
"updated": 1617734204593
},
{
"style": "List",
"text": "Proper language speaks to the quality of the product."
},
{
"style": "List",
"text": "Users who don't speak English may be using online translators, which perform well only when they have a proper source."
},
{
"style": "Important",
"text": "Always use a grammar and spell-checker to make sure your tutorial is as correct as it may be!",
"updated": 1617734220351
},
{
"style": "Text",
"text": ""
}
]
}
@@ -3,8 +3,8 @@
"pageNumber": 21,
"type": "Docs Anchor Style",
"definition": {
"text": "Anchor paragraphs are used together with the Docs Goto Command. When you want to generate a Docs Link to an specific part of a Docs Page, you first need to create an Anchor paragraph in order to be able to create the link to that part of the page.",
"updated": 1615591597546
"text": "Anchor paragraphs are used together with the Docs Goto Command. When you want to generate a Docs Link to a specific part of a Docs Page, you first need to create an Anchor paragraph to be able to create the link to the specific paragraph in the page.",
"updated": 1617649387777
},
"paragraphs": [
{
@@ -0,0 +1,84 @@
{
"topic": "How To",
"pageNumber": "3",
"type": "Create the Plugins-Docs Branch in Old Forks",
"definition": {
"text": "If your Superalgos fork is older than April 6, 2021, you must create the plugin-docs branch before you may switch to that branch! Newer forks already have the branch, so you don't need to follow this guide in that case!",
"updated": 1618155549345
},
"paragraphs": [
{
"style": "Note",
"text": "If you didn't create a fork at all, and cloned or downloaded the Superalgos repository directory instead, you will not be able to send your contributions. If that is the case, you will need to close the app, delete the Superalgos folder, and follow the instructions on the README file to fork the repository.",
"updated": 1618158446203
},
{
"style": "Title",
"text": "1. Go to Your Fork at Github.com"
},
{
"style": "Text",
"text": "Your fork is located in the following URL, replacing USERNAME with your actual Github.com username:"
},
{
"style": "Json",
"text": "https://github.com/USERNAME/Superalgos/"
},
{
"style": "Title",
"text": "2. Make Sure You Are on the Master Branch",
"updated": 1618156383837
},
{
"style": "Text",
"text": "Check the branch name in the combo box:",
"updated": 1618156395319
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/how-to/create-plugins-docs-branch-01.png",
"updated": 1618157385110
},
{
"style": "Title",
"text": "3. Click on 'master' and type <code>plugins-docs</code> in the Field",
"updated": 1618156956365
},
{
"style": "Important",
"text": "Make sure the spelling is exact!"
},
{
"style": "Json",
"text": "plugins-docs"
},
{
"style": "Title",
"text": "4. Click the <code>Create branch: plugins-docs from 'master'</code> Button",
"updated": 1618156987815
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/how-to/create-plugins-docs-branch-02.png",
"updated": 1618157499323
},
{
"style": "Text",
"text": "You should end up with the confirmation that the new branch has been created.",
"updated": 1618157121114
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/how-to/create-plugins-docs-branch-03.png",
"updated": 1618157524877
},
{
"style": "Title",
"text": "5. That's it!"
},
{
"style": "Success",
"text": "Now you may go back to the tutorial!"
}
]
}
@@ -3,14 +3,14 @@
"pageNumber": "1",
"type": "LF Trading Bot - Chart Data Structure",
"definition": {
"text": "The Chart Data Structure is an object that contains Indicator or Sensor bots data, available at runtime, that can be accessed from the code of Conditions and Formulas.",
"updated": 1612349390525
"text": "The Chart Data Structure is an object that contains Indicator Bot or Sensor Bot data available at runtime, and can be accessed from the code of Conditions and Formulas.",
"updated": 1617615874508
},
"paragraphs": [
{
"style": "Note",
"text": "This Javascript object, together with the other two data structures available, ultimately defines the syntax that can be used to write conditions and formulas, and more precisely the sintax to retrieve Indicator Bot and Sensor Bot data.",
"updated": 1612349521002
"text": "This Javascript object, together with the other two data structures described on this topic, ultimately defines the syntax that used to write conditions and formulas, and more precisely the syntax to retrieve Indicator Bot and Sensor Bot data.",
"updated": 1617615932665
},
{
"style": "Title",
@@ -18,8 +18,8 @@
},
{
"style": "List",
"text": "The root of the object is called...",
"updated": 1612351077417
"text": "The root of the object is...",
"updated": 1617615941456
},
{
"style": "Json",
@@ -27,8 +27,8 @@
},
{
"style": "List",
"text": "After it these are it's valid properties...",
"updated": 1612351085368
"text": "After the root, the definition of the timeframe is mandatory...",
"updated": 1617616001919
},
{
"style": "Json",
@@ -37,13 +37,13 @@
},
{
"style": "List",
"text": "After that, it is expected the singleVariableName defined at the config of the Product Definition of an Indicator or Sensor.",
"updated": 1612351093008
"text": "After that comes the singleVariableName defined at the config of the Product Definition of an Indicator Bot or Sensor Bot.",
"updated": 1617616054644
},
{
"style": "List",
"text": "Finally the last property must be the codeName of a Record Property Node, belonging to the same Product Definition mentioned earlier.",
"updated": 1612350081190
"text": "Finally, the last property is the codeName of a Record Property node, corresponding to the same Product Definition mentioned earlier.",
"updated": 1617616859394
},
{
"style": "Title",
@@ -51,47 +51,59 @@
"updated": 1612350235632
},
{
"style": "Text",
"style": "Json",
"text": "chart.at01min.support.support5Rate",
"updated": 1612349808636
},
{
"style": "Text",
"style": "Json",
"text": "chart.at05min.candle.open",
"updated": 1612350213519
},
{
"style": "Text",
"style": "Json",
"text": "chart.at24hs.bollingerBand.movingAverage"
},
{
"style": "Title",
"text": "Advance Usage"
"text": "Advanced Use",
"updated": 1617616121116
},
{
"style": "Text",
"text": "You also have access to the set of indicators objects loaded in memory though this same data structure. If instead of using the sinleVariableName you use the pluralVariableName what you get is an array of objects, that depending on the time frame, could be the object for that time frame of all market or the current and previous day for time frames < 1 hour.",
"updated": 1612353614216
"text": "You also have access to the set of indicator objects loaded in memory through this same data structure.",
"updated": 1617616255365
},
{
"style": "Text",
"text": "If instead of using the singleVariableName you use the pluralVariableName, you get an array of objects that — depending on the time frame — could be the object featuring the whole market (for time frames of one hour and above) or the current and previous day (for time frames below one hour).",
"updated": 1617616419121
},
{
"style": "Note",
"text": "Remember that time frames of one hour and above are stored as Market Files while time frames below one hour are stored as Daily Files."
},
{
"style": "Title",
"text": "Examples"
},
{
"style": "Text",
"style": "Json",
"text": "chart.at05min.candles"
},
{
"style": "Text",
"text": "Will return an array of candles of the previous day concatenated with the candles of the current day. You then can use this information as you wish."
"text": "The above returns an array of candles of the previous days concatenated with the candles of the current day. You may use this information as you wish.",
"updated": 1617616467792
},
{
"style": "Text",
"style": "Json",
"text": "chart.at24hs.bollingerBands"
},
{
"style": "Text",
"text": "Will return an array of all bollingerBands object of the whole market, since the time frame is >= 1 hour."
"text": "The above returns an array of all bollingerBands object of the whole market since the time frame is above 1 hour.",
"updated": 1617616877744
},
{
"style": "Text",
@@ -3,22 +3,18 @@
"pageNumber": "2",
"type": "LF Trading Bot - Market Data Structure",
"definition": {
"text": "The Market Data Structure is one of the 3 data structures available at Conditions and Formulas with data from Indicator and Sensor bots.",
"updated": 1612351166683
"text": "You may use this Javascript object from within conditions and formulas when you want to specify a Market different from the Default Market. For example, you may access data of the ETH/USDT market from a Trading System running on the BTC/USDT market.",
"updated": 1617617047716
},
"paragraphs": [
{
"style": "Note",
"text": "This Javascript object can be used when you want to specify a market which is different fomr the Default Market. In this way you can access data of the ETH/USDT market from a stragegy running for example at the BTC/USDT market.",
"updated": 1612351365558
},
{
"style": "Title",
"text": "Structure"
},
{
"style": "List",
"text": "The root of the object is called..."
"text": "The root of the object is...",
"updated": 1617617057256
},
{
"style": "Json",
@@ -27,8 +23,8 @@
},
{
"style": "List",
"text": "After it you need to spacify the codeName of an Asset representing the Market Base Asset, like the following...",
"updated": 1612351559165
"text": "Then you must specify the codeName of an Asset representing the Market Base Asset, as follows...",
"updated": 1617617165183
},
{
"style": "Json",
@@ -37,7 +33,8 @@
},
{
"style": "List",
"text": "After that again the codeName of an Asset but this time representing the Market Quoted Asset.."
"text": "After that, specify the codeName of an Asset but this time representing the Market Quoted Asset...",
"updated": 1617617108322
},
{
"style": "Json",
@@ -45,8 +42,8 @@
},
{
"style": "List",
"text": "Finally you continue with the syntax of the LF Trading Bot - Chart Data Structure",
"updated": 1612352138708
"text": "Finally, continue with the syntax of the LF Trading Bot - Chart Data Structure",
"updated": 1617617178876
},
{
"style": "Title",
@@ -54,17 +51,17 @@
"updated": 1612352364588
},
{
"style": "Text",
"style": "Json",
"text": "market.ETH.BTC.chart.at01min.support.support5Rate",
"updated": 1612351751906
},
{
"style": "Text",
"style": "Json",
"text": "market.BTC.USDT.chart.at05min.candle.open",
"updated": 1612351782297
},
{
"style": "Text",
"style": "Json",
"text": "market.ETH.USDT.chart.at24hs.bollingerBand.movingAverage",
"updated": 1612351804074
}
@@ -3,21 +3,18 @@
"pageNumber": "3",
"type": "LF Trading Bot - Exchange Data Structure",
"definition": {
"text": "Write a summary for this topic page."
"text": "You may use this Javascript object when you want to specify a Crypto Exchange which is different from the Default Exchange. Then you may, for example, access data from Coinbase Pro from a Trading Session running on Binance.",
"updated": 1617617256390
},
"paragraphs": [
{
"style": "Note",
"text": "This Javascript object can be used when you want to specify a Cryto Exchage which is different fomr the Default Exchange. In this way you can access data from Coinbase Pro from a stragegy running for example at Binance.",
"updated": 1612351988656
},
{
"style": "Title",
"text": "Structure"
},
{
"style": "List",
"text": "The root of the object is called..."
"text": "The root of the object is...",
"updated": 1617617272058
},
{
"style": "Json",
@@ -26,8 +23,8 @@
},
{
"style": "List",
"text": "After it you need to spacify the codeName of a Crypto Exchange, like the following...",
"updated": 1612352057634
"text": "Then, you must specify the codeName of a Crypto Exchange, for instance...",
"updated": 1617617294733
},
{
"style": "Json",
@@ -36,8 +33,8 @@
},
{
"style": "List",
"text": "Finally you continue with the syntax of the LF Trading Bot - Market Data Structure",
"updated": 1612352124926
"text": "Finally, continue with the syntax of the LF Trading Bot - Market Data Structure",
"updated": 1617617310038
},
{
"style": "Title",
@@ -45,17 +42,17 @@
"updated": 1612352354839
},
{
"style": "Text",
"style": "Json",
"text": "exchange.poloniex.market.ETH.BTC.chart.at01min.support.support5Rate",
"updated": 1612352167087
},
{
"style": "Text",
"style": "Json",
"text": "exchange.bitfinex.market.BTC.USDT.chart.at05min.candle.open",
"updated": 1612352188098
},
{
"style": "Text",
"style": "Json",
"text": "exchange.binance.market.ETH.USDT.chart.at24hs.bollingerBand.movingAverage",
"updated": 1612352200136
},
@@ -66,7 +63,8 @@
},
{
"style": "Text",
"text": "As you can see at the following example you can have a mix of chart, market and exchange usage withing the same Formula or Condition. "
"text": "As you can see in the following example, you may have a mix of chart, market and exchange usage within the same Formula or Condition.",
"updated": 1617617348929
},
{
"style": "Json",
@@ -0,0 +1,42 @@
{
"topic": "Omega One Data Mine",
"pageNumber": "1",
"type": "Omega One - Overview",
"definition": {
"text": "You can set different values for used periods at the top section of most indicators found in the Omega Data Mine -> Data Building Procedure -> Procedure Loop -> Procedure Javascript Code node."
},
"paragraphs": [
{
"style": "Title",
"text": "Indicator list:",
"updated": 1617873731007
},
{
"style": "List",
"text": "Chaikin Oscillator"
},
{
"style": "Text",
"text": "The Chaikin Oscillator is the difference between the 3-day and 10-day EMAs of the Accumulation Distribution Line. Like other momentum indicators, this indicator is designed to anticipate directional changes in the Accumulation Distribution Line by measuring the momentum behind the movements."
},
{
"style": "List",
"text": "ARPS Slow & ARPS Fast",
"updated": 1617875374428
},
{
"style": "Text",
"text": "ARPS - Average Range Percentage Spread measures the amount force of Bull Power and Bear Power. Two separate indicators measuring the same thing, in order to be used either separatly or combined.",
"updated": 1617957855552
},
{
"style": "List",
"text": "Average VS Average"
},
{
"style": "Text",
"text": "The Average VS Average Oscillator can be used to recognize changes between a fast average and a slow average. Considering price movement, volume and a so called \"open interest\".",
"updated": 1617957863133
}
]
}
@@ -0,0 +1,88 @@
{
"topic": "Omega One Data Mine",
"pageNumber": "2",
"type": "Chaikin Oscillator",
"definition": {
"text": "The Chaikin Indicator applies MACD to the accumulation-distribution line rather than closing price.\n",
"updated": 1617876911680
},
"paragraphs": [
{
"style": "Subtitle",
"text": "What is the Chaikin Oscillator?"
},
{
"style": "Text",
"text": "The Chaikin oscillator is named for its creator Marc Chaikin. The oscillator measures the accumulation-distribution line of moving average convergence-divergence (MACD). To calculate the Chaikin oscillator, subtract a 10-day exponential moving average (EMA) of the accumulation-distribution line from a 3-day EMA of the accumulation-distribution line. This measures momentum predicted by oscillations around the accumulation-distribution line.",
"updated": 1617875532630
},
{
"style": "Callout",
"text": "A cross above the accumulation-distribution line indicates that market players are accumulating shares, securities or contracts, which is typically bullish."
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/indicators/chaikin-oscillator.png"
},
{
"style": "Subtitle",
"text": "How is the Chaikin Oscillator calculated?",
"updated": 1617875610441
},
{
"style": "List",
"text": "Calculate the Money Flow Multiplier (N)."
},
{
"style": "List",
"text": "Multiply the Money Flow Multiplier (N) by volume to calculate Money Flow Volume (N)."
},
{
"style": "List",
"text": "List a running total of N to draw the accumulation-distribution line (ADL)."
},
{
"style": "List",
"text": "Compute the difference between 10 period and 3 period exponential moving averages to calculate the Chaikin oscillator."
},
{
"style": "Subtitle",
"text": "Example of How to Use the Chaikin Oscillator"
},
{
"style": "Text",
"text": "The purpose of the Chaikin oscillator is to identify underlying momentum during fluctuations in accumulation-distribution. Specifically, it applies the MACD indicator to accumulation-distribution rather than closing prices."
},
{
"style": "Text",
"text": "For example, a trader wants to determine whether a stock price is more likely to go up or to fall and MACD is trending higher. The Chaikin oscillator generates a bullish divergence when it crosses above a baseline. The baseline is called the accumulation-distribution line. A cross above that line indicates that traders are accumulating, which is typically bullish."
},
{
"style": "Text",
"text": "The Chaikin oscillator utilizes two primary buy and sell signals. First, a positive divergence is confirmed with a center-line crossover above the accumulation-distribution line. signaling a potential buying opportunity.. Second, a negative divergence is confirmed with a center-line crossover below the accumulation-distribution line., signaling a potential selling opportunity"
},
{
"style": "Text",
"text": "A positive divergence signals a stock price is likely to rise, given the increase in accumulation. A negative divergence signals a stock price is likely to fall, given the increase in distribution."
},
{
"style": "Subtitle",
"text": "Products, Properties & Examples",
"updated": 1617967853007
},
{
"style": "Table",
"text": "| Product Name | Product Variable | Properties |\n| Chaikin Oscillator | chaikinOscillator | chaikinOscillator, zeroLine |",
"updated": 1617967606206
},
{
"style": "Javascript",
"text": "/* EXAMPLES */\n\n// Bullish cross\nchart.at01hs.chaikinOscillator.previous.chaikinOscillator < \nchart.at01hs.chaikinOscillator.previous.zeroLine && \nchart.at01hs.chaikinOscillator.chaikinOscillator > \nchart.at01hs.chaikinOscillator.zeroLine\n\n// Bearish cross\nchart.at01hs.chaikinOscillator.previous.chaikinOscillator > \nchart.at01hs.chaikinOscillator.previous.zeroLine && \nchart.at01hs.chaikinOscillator.chaikinOscillator < \nchart.at01hs.chaikinOscillator.zeroLine",
"updated": 1617967996718
},
{
"style": "Subtitle",
"text": ""
}
]
}
@@ -0,0 +1,166 @@
{
"topic": "Omega One Data Mine",
"pageNumber": "3",
"type": "ARPS Slow & ARPS Fast",
"definition": {
"text": "Measures the average Bull Power and average Bear Power in the average Total Range.",
"updated": 1617958264294
},
"paragraphs": [
{
"style": "Note",
"text": "You can set different values for used periods at the top section of most indicators found in the Omega Data Mine -> Data Building Procedure -> Procedure Loop -> Procedure Javascript Code node.",
"updated": 1617957983880
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/indicators/arps-slow-arps-fast.png"
},
{
"style": "Subtitle",
"text": "ARPS - Average Range Percentage Spread",
"updated": 1617957610783
},
{
"style": "Text",
"text": "ARPS Slow and ARPS Fast measures the Average Bull and Average Bear power within a given, configurable range."
},
{
"style": "Text",
"text": "Two separate indicators that can be used either separatly or in combination with others."
},
{
"style": "Text",
"text": "ARPS follows price action by using a SMA center line, and prints out the bullish power visualised by a blue line, and a red line for bearish power. The distance from the centerline represents the strength of the powers. The greater distance away from the center line, the greater advantage.",
"updated": 1617953949590
},
{
"style": "Text",
"text": "The distance between the bull and bear lines represents the average total range for the period."
},
{
"style": "Text",
"text": "Looking at the Plotter Panel will give you the values measured in percentage (%)."
},
{
"style": "Subtitle",
"text": "How is ARPS calculated?"
},
{
"style": "Text",
"text": "All values are being calculated through a SMA function."
},
{
"style": "List",
"text": "Bull Power is the measured distance between the candle low and candle close, divided the candle range.",
"updated": 1617952901003
},
{
"style": "List",
"text": "Bear Power is the measured distance between the candle high and candle close, divided the candle range.",
"updated": 1617952943789
},
{
"style": "List",
"text": "The average Bull Power and average Bear Power are divided through the Average Total Range for the same given period - Giving the Average Range Spread.",
"updated": 1617953325703
},
{
"style": "List",
"text": "All values are multiplied by 100 to convert it to precentage form (%)."
},
{
"style": "Subtitle",
"text": "Change the input to optimise it for your use case!",
"updated": 1617953879921
},
{
"style": "Text",
"text": "Most of Omega indicators can use different period values. To change periods:",
"updated": 1617955135049
},
{
"style": "List",
"text": "Locate the Data Mine and expand it."
},
{
"style": "List",
"text": "Expand the Indicator Bot node."
},
{
"style": "List",
"text": "Find the Product Definition -> Data Building Procedure -> Procedure Loop -> Procedure Javascript Code."
},
{
"style": "List",
"text": "Edit the Procedure Javascript Code node."
},
{
"style": "List",
"text": "Put the text marker in the edit box, and press Arrow Up until you reach the top of the code."
},
{
"style": "List",
"text": "Look for \"User defined values\".",
"updated": 1617954642138
},
{
"style": "List",
"text": "Enter the values of your choice."
},
{
"style": "Note",
"text": "Remember that you have to delete existing data for the indicator in the Data-Storage folder, and re-start the Data Tasks needed for the indicator in the Network node before you can see any changes.",
"updated": 1617954918128
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/indicators/arps-code-node.png",
"updated": 1617954552809
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/indicators/arps-user-defined.png",
"updated": 1617954568478
},
{
"style": "Subtitle",
"text": "Products, Properties & Examples",
"updated": 1617967853007
},
{
"style": "Table",
"text": "| Product Name | Product Variable | Properties |\n| ARPS Slow | slowARPS | ARPS, apsBull, apsBear, SMA, percentageARPS, percentageApsBull, percentage apsBear |",
"updated": 1617968683265
},
{
"style": "Javascript",
"text": "/* EXAMPLES for ARPS Slow */\n\n// Bullish cross (Bull Power turns greater than Bear Power)\nchart.at01hs.slowARPS.previous.apsBull < \nchart.at01hs.slowARPS.previous.apsBear && \nchart.at01hs.slowARPS.apsBull > \nchart.at01hs.slowARPS.apsBear\n\n// Bearish cross (Bear Power turns greater than Bull Power)\nchart.at01hs.slowARPS.previous.apsBull > \nchart.at01hs.slowARPS.previous.apsBear && \nchart.at01hs.slowARPS.apsBull < \nchart.at01hs.slowARPS.apsBear\n\n// Average Price is going up compared to previous Average Price\nchart.at01hs.slowARPS.previous.SMA < chart.at01hs.slowARPS.SMA\n\n// The Average Range, measured in percent, is greater than 0.5%\nchart.at01hs.slowARPS.percentageARPS > 0.5\n\n// The Average Range, measured in rate, is greater than 1\nchart.at01hs.slowARPS.ARPS > 1",
"updated": 1617969217661
},
{
"style": "Table",
"text": "| Product Name | Product Variable | Properties |\n| ARPS Fast | fastARPS | ARPS, apsBull, apsBear, SMA, percentageARPS, percentageApsBull, percentage apsBear |",
"updated": 1617969400921
},
{
"style": "Javascript",
"text": "/* EXAMPLES for ARPS Fast */\n\n// Bullish cross (Bull Power turns greater than Bear Power)\nchart.at01hs.fastARPS.previous.apsBull < \nchart.at01hs.fastARPS.previous.apsBear && \nchart.at01hs.fastARPS.apsBull > \nchart.at01hs.fastARPS.apsBear\n\n// Bearish cross (Bear Power turns greater than Bull Power)\nchart.at01hs.fastARPS.previous.apsBull > \nchart.at01hs.fastARPS.previous.apsBear && \nchart.at01hs.fastARPS.apsBull < \nchart.at01hs.fastARPS.apsBear\n\n// Average Price is going up compared to previous Average Price\nchart.at01hs.fastARPS.previous.SMA < chart.at01hs.slowARPS.SMA\n\n// The Average Range, measured in percent, is greater than 0.5%\nchart.at01hs.fastARPS.percentageARPS > 0.5\n\n// The Average Range, measured in rate, is greater than 1\nchart.at01hs.fastARPS.ARPS > 1",
"updated": 1617969438749
},
{
"style": "Subtitle",
"text": "That Wombo-Combo!",
"updated": 1617969861080
},
{
"style": "Javascript",
"text": "/* EXAMPLES for ARPS Slow and ARPS Fast combined */\n\n// Fast SMA crosses Slow SMA (Bullish)\nchart.at01hs.fastARPS.previous.SMA < \nchart.at01hs.slowARPS.previous.SMA && \nchart.at01hs.fastARPS.SMA > \nchart.at01hs.slowARPS.SMA\n\n// Fast Bull crosses Slow SMA (Bearish)\nchart.at01hs.fastARPS.previous.apsBull > \nchart.at01hs.slowARPS.previous.SMA && \nchart.at01hs.fastARPS.apsBull < \nchart.at01hs.slowARPS.SMA\n\n// Fast Average Price is above Slow Average Price\nchart.at01hs.fastARPS.SMA > chart.at01hs.slowARPS.SMA\n\n// The Fast Average Range is greater than 0.5 & greater than the Slow Average Range\nchart.at01hs.fastARPS.percentageARPS > 0.5 &&\nchart.at01hs.fastARPS.ARPS > chart.at01hs.slowARPS.ARPS",
"updated": 1617969959288
},
{
"style": "Subtitle",
"text": ""
}
]
}
@@ -0,0 +1,188 @@
{
"topic": "Omega One Data Mine",
"pageNumber": "4",
"type": "Average VS Average",
"definition": {
"text": "An oscillator that considers averages of price, volume and \"open interest\".",
"updated": 1617958214490
},
"paragraphs": [
{
"style": "Note",
"text": "You can set different values for used periods at the top section of most indicators found in the Omega Data Mine -> Data Building Procedure -> Procedure Loop -> Procedure Javascript Code node.",
"updated": 1617958138349
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/indicators/average-vs-average.png"
},
{
"style": "Subtitle",
"text": "Average VS Average"
},
{
"style": "Text",
"text": "The Average VS Average Oscillator can be used to recognize changes between a fast average and a slow average. It measures Price Movement, Volume and a so called Open Interest.",
"updated": 1617958497266
},
{
"style": "Text",
"text": "The idea is to visualise if the trend weakens or gets stronger, within the current trend."
},
{
"style": "Text",
"text": "The indicator is a zero-line cross indicator that is best used with an own rate and scale (in order to place it below the candle chart)."
},
{
"style": "Text",
"text": "The elements in the indicator are:"
},
{
"style": "List",
"text": "A mid-line that represents the slow average of the elements (it always has the value 1).",
"updated": 1617973206308
},
{
"style": "List",
"text": "A green line that shows fast average Bull Power compared to the slow average.",
"updated": 1617960429886
},
{
"style": "List",
"text": "A dotted line that shows the fast average Open Interest compared to the slow average.",
"updated": 1617960458863
},
{
"style": "List",
"text": "Faded green and red bars in the background that shows the fast average volume compared to the slow average volume. It changes colors depending on the previous value.",
"updated": 1617961835292
},
{
"style": "List",
"text": "Non-faded green and red bars close to the zero-line showing the fast price average compared to the slow price average. It changes colors depending on the previous value.",
"updated": 1617961849374
},
{
"style": "Subtitle",
"text": "What is \"Open Interest\"?"
},
{
"style": "Text",
"text": "The idea of measuring Open Interest - is that a red candle might not be an indication of a bearish interest and vice versa. Considering volume, candle direction and amount movement defines the strength of Open Interest.",
"updated": 1617961616124
},
{
"style": "List",
"text": "Bull Candle and Volume Increase = Bull Interest"
},
{
"style": "List",
"text": "Bull Candle and Volume Decrease = Bear Interest"
},
{
"style": "List",
"text": "Bear Candle and Volume Increase = Bear Interest"
},
{
"style": "List",
"text": "Bear Candle and Volume Decrease = Bull Interest"
},
{
"style": "Subtitle",
"text": "How is the Average VS Average calculated?"
},
{
"style": "List",
"text": "Bull Power is defined by measuring the value between candle min and candle close, out of the total candle range. Comparing the fast average Bull Power through the slow average Bull Power.",
"updated": 1617961207015
},
{
"style": "List",
"text": "Volume is measured by the fast average Total Volume through the slow average Total Volume.",
"updated": 1617961227511
},
{
"style": "List",
"text": "The fast average Price is compared to the slow average Price.",
"updated": 1617961304593
},
{
"style": "List",
"text": "The fast average Open Interest is compared to the slow average Open Interest. ",
"updated": 1617961386984
},
{
"style": "Subtitle",
"text": "Change the input to optimise it for your use case!",
"updated": 1617953879921
},
{
"style": "Text",
"text": "Most of Omega indicators can use different period values. To change periods:",
"updated": 1617955135049
},
{
"style": "List",
"text": "Locate the Data Mine and expand it."
},
{
"style": "List",
"text": "Expand the Indicator Bot node."
},
{
"style": "List",
"text": "Find the Product Definition -> Data Building Procedure -> Procedure Loop -> Procedure Javascript Code."
},
{
"style": "List",
"text": "Edit the Procedure Javascript Code node."
},
{
"style": "List",
"text": "Put the text marker in the edit box, and press Arrow Up until you reach the top of the code."
},
{
"style": "List",
"text": "Look for \"User defined values\".",
"updated": 1617954642138
},
{
"style": "List",
"text": "Enter the values of your choice."
},
{
"style": "Note",
"text": "Remember that you have to delete existing data for the indicator in the Data-Storage folder, and re-start the Data Tasks needed for the indicator in the Network node before you can see any changes.",
"updated": 1617954918128
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/indicators/average-vs-average-code-node.png",
"updated": 1617958956443
},
{
"style": "Png",
"text": "PNGs/Superalgos/Docs/indicators/average-vs-average-user-defined.png",
"updated": 1617958965558
},
{
"style": "Subtitle",
"text": "Products, Properties & Examples",
"updated": 1617967853007
},
{
"style": "Table",
"text": "| Product Name | Product Variable | Properties |\n| Average VS Average | averageVsAverage | bullPriceDeviation, smaPrice, volumeDeviation, openInterestDeviation |",
"updated": 1617972838194
},
{
"style": "Javascript",
"text": "/* EXAMPLES */\n\n// Average price is increasing compared to the slow average price\nchart.at01hs.averageVsAverage.previous.smaPrice < \nchart.at01hs.averageVsAverage.smaPrice\n\n// Bull Power crosses the mid-line (mid-line is always '1') (Bullish)\nchart.at01hs.averageVsAverage.previous.bullPriceDeviation < 1 &&\nchart.at01hs.averageVsAverage.bullPriceDeviation > 1\n\n// Bull Power crosses the mid-line while Open Interest is above mid-line (Bullish)\n( chart.at01hs.averageVsAverage.previous.bullPriceDeviation < 1 &&\nchart.at01hs.averageVsAverage.bullPriceDeviation > 1 ) &&\nchart.at01hs.averageVsAverage.openInterestDeviation < 1\n\n// Volume increases and SMA Price is below mid-line and SMA Price is getting stronger\nchart.at01hs.averageVsAverage.previous.volumeDeviation < \nchart.at01hs.averageVsAverage.volumeDeviation &&\nchart.at01hs.averageVsAverage.smaPrice < 1 &&\nchart.at01hs.averageVsAverage.previous.smaPrice < \nchart.at01hs.averageVsAverage.smaPrice",
"updated": 1617973639173
},
{
"style": "Text",
"text": ""
}
]
}
@@ -14,18 +14,18 @@
},
{
"style": "List",
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has not been fully verified.",
"updated": 1616005829277
"text": "1-min OHLCVs Capability: Yes. Backtesting and Paper trading are functional. The data mining process is extremely slow when retrieving full history due to API limits but it is adequate for live trading purposes.",
"updated": 1617935711274
},
{
"style": "List",
"text": "Market History: Unknown",
"updated": 1615453086807
"text": "Market History: Full extent is unknown, however it is at least 2020-01-01.",
"updated": 1617935743856
},
{
"style": "List",
"text": "Trading Capability: Unknown.The ability to run strategies in live-trading mode has not been verified.",
"updated": 1616005834904
"text": "Trading Capability: Partial. With a proper key configuration placing orders is possible. Currently, closing orders is not fully functional, so all types of trading strategies may not be fully functional.",
"updated": 1617935811860
},
{
"style": "List",
@@ -34,16 +34,24 @@
},
{
"style": "Title",
"text": "Configuration"
"text": "Exchange Configuration"
},
{
"style": "Json",
"text": "{\n \"codeName\": \"coinbasepro\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 300\n }\n ]\n}",
"updated": 1615453067170
"updated": 1617935879109
},
{
"style": "Title",
"text": "API Key Configuration"
},
{
"style": "Json",
"text": "{\n \"codeName\": \"APIKEY\",\n \"secret\": \"SECRETKEY\",\n \"password\": \"PASSPHRASE\"\n}"
},
{
"style": "Text",
"text": ""
}
]
}
}
@@ -9,82 +9,46 @@
"paragraphs": [
{
"style": "Text",
"text": "You should expect new releases of Superalgos to become available every few months. Release announcements are made through the Official Superalgos Telegram Announcements Channel.",
"updated": 1611511377439
"text": "You should expect new releases of Superalgos to become available every few months. Release announcements are made through the official Superalgos Announcements Channel.",
"updated": 1617647047464
},
{
"style": "Note",
"text": "During this beta stage, patches may be released as frequently as several times per week. Due to their high-frequency, minor updates go unannounced. If you ever experience a malfunction, make sure you upgrade your installation to the latest version available in the Superalgos repository before reporting a bug.",
"updated": 1611511390486
"text": "During the beta stage, patches and new features may become available in the develop branch as frequently as several times per week. Due to the high frequency of their occurrence, minor updates go unannounced. If you ever experience a malfunction, make sure you upgrade your installation to the latest version available in the develop branch of the Superalgos repository before reporting a bug.",
"updated": 1617647903163
},
{
"style": "Title",
"text": "New Releases"
},
{
"style": "Text",
"text": "If you are upgrading to a new official release, make sure you follow these instructions as well as those under the All Upgrades section."
},
{
"style": "Subtitle",
"text": "Read the Announcement Carefully"
},
{
"style": "Text",
"text": "Read and understand the announcement explaining the changes and how they may impact your workflow. Most importantly, find out if the new version requires upgrading your workspace."
},
{
"style": "Subtitle",
"text": "Check the Getting Started Guide"
},
{
"style": "Text",
"text": "It would be wise to go through the potentially new Getting Started Guide in the documentation, as it may reveal important information."
},
{
"style": "Subtitle",
"text": "Back Up Your Personal Work"
},
{
"style": "Text",
"text": "If the new version requires upgrading to a new workspace, you must decide which parts of your work you wish to backup so that you may restore them on the upgraded workspace (e.g.: you may want to backup your trading systems, data mines, super scripts, specific settings or configurations such as testing sessions, time machines, and so on)."
},
{
"style": "Text",
"text": "If there is no need to upgrade the workspace, that means that the new version of the system should work well with your existing workspace, provided that you are only one version behind."
"text": "Read and understand the announcement explaining the changes and how they may impact your workflow. Most importantly, find out if the new version requires upgrading your workspaces or the rest of the assets you may be working with (trading systems, data mines, etc).",
"updated": 1617646452770
},
{
"style": "Title",
"text": "All Upgrades"
"text": "Back-Up Your Personal Work",
"updated": 1617647919380
},
{
"style": "Subtitle",
"text": "Back Up the Workspace"
"style": "Important",
"text": "Always back up your personal work. Whether the new version is backward-compatible or not, you may — for whatever reason — want to go back to the state of affairs before the upgrade.",
"updated": 1617647956316
},
{
"style": "Text",
"text": "Always back up your existing workspace before switching versions. You may go back to a working version of the software in case something goes wrong with the new one, by installing the previous version of the system and restoring your old workspace from a backup file if needed."
"text": "The new version will always ship with its own Plugin Workspaces. The release announcement should make it clear if the new version is backward-compatible or not. If it's not, the announcement should cover any consideration relevant to upgrading from the previous version.",
"updated": 1617648003762
},
{
"style": "Subtitle",
"style": "Title",
"text": "Put the House in Order"
},
{
"style": "Text",
"text": "1. Stop all tasks that may be running in the network hierarchy, and close your browser. Allow a minute or two until all activity stops before closing the Console/Command Line/Terminal running the servers."
},
{
"style": "Text",
"text": "2. Check if you have any personal files, such as your workspace backups and so on in your Superalgos-master folders. Move them to a different location if you do, or take precautions not to delete them in the next step."
},
{
"style": "Text",
"text": "3. You will keep the Data-Storage and My-Workspaces folders intact and delete all the remaining folders within the Superalgos folder."
},
{
"style": "Important",
"text": "You do not need to get rid of the historic market data or the workspaces you have been working with every time you upgrade your system. Do not delete your Data-Storage or your My-Workspaces folder.",
"updated": 1611511439947
"text": "Stop all tasks that may be running in the Network hierarchy. Allow a minute or two until all activity stops.",
"updated": 1617646656306
},
{
"style": "Title",
@@ -93,8 +57,18 @@
},
{
"style": "Text",
"text": "Always follow the instructions in the Official Announcements Channel and the official blog post about the new release.",
"updated": 1611511529701
"text": "Run the App Update Command to install the new version of the app. Follow the instructions to close the browser and stop the client once the system is updated.",
"updated": 1617647599654
},
{
"style": "Title",
"text": "Apply the Guidance in the Announcement",
"updated": 1617647633126
},
{
"style": "Text",
"text": "If the official announcement provides information on how to upgrade your assets to use them in the new version, this is the time to follow the relevant guidance.",
"updated": 1617647676913
},
{
"style": "Important",
@@ -107,18 +81,21 @@
},
{
"style": "Text",
"text": "Once the system loads in your browser window and before you start working, you need to empty Chrome’s cache and do a hard reload to make sure the browser does use the newly installed files."
"text": "Once the system loads in your browser window and before you start working, it's always good practice to empty Chrome’s cache and do a hard reload to make sure the browser does use the newly installed files.",
"updated": 1617647736967
},
{
"style": "Text",
"text": "1. Hit F12 to open Chrome’s Developer Tools. You do not need to use the Developers Tools, but opening it allows performing the next task."
"style": "List",
"text": "Hit F12 to open Chrome’s Developer Tools. You do not need to use the Developers Tools, but opening it allows performing the next task.",
"updated": 1617647751232
},
{
"style": "Text",
"text": "2. Right-click on the refresh icon and select Empty Cache and Hard Reload from the drop-down menu. Once refreshed, you may close Developer Tools with F12."
"style": "List",
"text": "Right-click on the refresh icon and select Empty Cache and Hard Reload from the drop-down menu. Once refreshed, you may close Developer Tools with F12.",
"updated": 1617647755781
},
{
"style": "Text",
"style": "List",
"text": "F12 to open Developer Tools, then right-click on the refresh icon."
},
{
@@ -135,11 +112,8 @@
},
{
"style": "Text",
"text": "Before going deep back to work, it is always recommeended to test the new version a bit and make sure that your existing work performs as you would expect."
},
{
"style": "Text",
"text": "If you run into any issues, feel free to drop us a line in our Community."
"text": "Before going deep back to work, it is always recommended to test the new version a bit and make sure that your existing work performs as you would expect.",
"updated": 1617648042507
}
]
}
@@ -0,0 +1,49 @@
{
"topic": "TS LF Trading Bot Warnings",
"pageNumber": "15",
"type": "TS LF Trading Bot Warning - Order Not Found at the Exchange",
"definition": {
"text": "The exchange returned null while checking an order. This usually happens at exchanges like Coinbase Pro that after an order cancellation the exchange deletes the order instead of changing it's status to cancelled.",
"updated": 1611922128136
},
"paragraphs": [
{
"style": "Success",
"text": "This is not an error and may be normal behavior. The trading bot created this warning to let you know that this happened so that you may keep track of all the details of the trade should you need to. This page provides information that should help you understand the context of the warning.",
"updated": 1611922148396
},
{
"style": "Warning",
"text": "Order Status Not Sync With Exchange"
},
{
"style": "Title",
"text": "Context Info"
},
{
"style": "Text",
"text": "Find below the values of variables relevant to the warning at the time the warning was created. They may prove of use to understand what happened."
},
{
"style": "Placeholder",
"text": "contextInfo"
},
{
"style": "Title",
"text": "Learn More"
},
{
"style": "Text",
"text": "To learn more about this topic, please read the following page:"
},
{
"style": "List",
"text": "Checking Exchange Events",
"updated": 1611921970650
},
{
"style": "List",
"text": "Syncing With the Exchange"
}
]
}
@@ -3,8 +3,8 @@
"pageNumber": 8,
"type": "Tutorial Step - Switching Branches",
"definition": {
"text": "The master branch in the Superalgos repo features the latest stable version, while the develop branch features the version in development!",
"updated": 1616759979604,
"text": "Superalgos allows you to switch branches directly from within the app! But, why would you want to switch branches?",
"updated": 1618145423371,
"icon": {
"name": "github",
"project": "Superalgos"
@@ -18,13 +18,13 @@
},
{
"style": "Success",
"text": "Or you may wish to submit a contribution, which must always be sent to the develop branch!",
"updated": 1616760455582
"text": "Or you may wish to submit a contribution, like in our case right now! Let's do it!",
"updated": 1618145540691
},
{
"style": "Callout",
"text": "Scroll down the Docs page to the footer and select Develop as your Contributions Branch! It's the option on the right-hand side, not in the center!",
"updated": 1616760852432
"text": "Scroll down the Docs page to the footer and select Plugins/Docs as your Contributions Branch! It's the option on the right-hand side, not in the center!",
"updated": 1618145561816
}
]
}
@@ -13,13 +13,18 @@
"paragraphs": [
{
"style": "Text",
"text": "Now it's time to change the Current Branch! When you do that, the app will run a series of Git commands that will download the software from the develop branch of your fork! The current software will be automatically replaced on your disk! For that reason, you will need to close the app after switching, restart, find the tutorial and resume to keep going!",
"updated": 1617017990927
"text": "Next in line is switching the Current Branch, but we need to run some checks first!",
"updated": 1618154759190
},
{
"style": "Important",
"text": "But before you switch branches, let's take a moment to think of the consequences!",
"updated": 1617008246622
"style": "Callout",
"text": "If you forked the Superalgos repo before April 6th, 2021, follow the instructions on this page to create the plugins-docs branch. Otherwise, keep going!",
"updated": 1618154888356
},
{
"style": "Text",
"text": "When you switch branches, the app will run a series of Git commands that will download the software from the plugins-docs branch of your fork! The current software will be replaced on your disk! For that reason, you will need to close the app after switching. But let's discuss a couple more things before you proceed!",
"updated": 1618159009151
}
]
}
@@ -3,23 +3,23 @@
"pageNumber": 10,
"type": "Tutorial Step - Before You Switch",
"definition": {
"text": "There are a few things you should consider every time you switch branches! Let's go through a quick list bfore you proceed!",
"text": "There are a few things you should consider every time you switch branches! Let's go through a quick list before you proceed!",
"icon": {
"name": "bullet-warning",
"project": "Superalgos"
},
"updated": 1617018123415
"updated": 1618147991903
},
"paragraphs": [
{
"style": "List",
"text": "It may happen that the workspaces or other data structures in the master branch are not compatible with those in the develop branch. ",
"updated": 1617017830521
"text": "It may happen that the workspaces or other data structures in the master branch are not compatible with those in the other branch.",
"updated": 1618158546133
},
{
"style": "List",
"text": "If the current workspace is incompatible with the software in the other branch, the workspace may break upon reloading the app. In such a case, you must load a Plugin Workspace of the new branch.",
"updated": 1617018153708
"text": "If the current workspace is incompatible with the software in the other branch, the workspace may break upon reloading the app. In such a case, load one of the Plugin Workspaces of the new branch.",
"updated": 1618158600251
},
{
"style": "List",
@@ -28,8 +28,8 @@
},
{
"style": "Important",
"text": "Always check the README file in the develop branch of the repository for any comments on backward compatibility. Before switching branches, it is always good to back up your work!",
"updated": 1617017837289
"text": "Always check the README file in the branch of the repository you wish to access for any comments on backward compatibility. Before switching branches, back up your work!",
"updated": 1618158675366
}
]
}
@@ -13,8 +13,8 @@
"paragraphs": [
{
"style": "Text",
"text": "You may have two clones of your fork running from separate folders, one of them in the develop branch.",
"updated": 1617018731051
"text": "You may have two clones of your fork running from separate folders, each on different branches.",
"updated": 1618158812449
},
{
"style": "Note",
@@ -23,8 +23,8 @@
},
{
"style": "Success",
"text": "Such a setup allows you to run the stable version for your production tasks, and the version in develop to contribute and test new features!",
"updated": 1617018806324
"text": "Such a setup allows you to run the stable version for your production tasks, and the version in another branch to contribute and test new features! But you can't run two versions at the same time, unless you change ports! We won't go there now!",
"updated": 1618148172616
}
]
}
@@ -18,8 +18,8 @@
},
{
"style": "List",
"text": "Go back to the footer and select Develop as your Current Branch.",
"updated": 1617019546125
"text": "Go back to the footer and select Plugins/Docs as your Current Branch.",
"updated": 1618159168230
},
{
"style": "List",
@@ -3,18 +3,18 @@
"pageNumber": 13,
"type": "Tutorial Step - Welcome Back!",
"definition": {
"text": "If you followed my instructions to the letter, you should now be running the software in the develop branch! Awesome!",
"text": "If you followed my instructions to the letter, you should now be running the software in the plugins-docs branch! Awesome!",
"icon": {
"name": "hits",
"project": "Superalgos"
},
"updated": 1617007379836
"updated": 1618159282200
},
"paragraphs": [
{
"style": "Text",
"text": "The software you are currently running is the version of Superalgos that was at the develop branch the day you forked the project! This is because the process of switching branches downloads the software from your fork and not the upstream repository.",
"updated": 1617020053004
"text": "The software you are currently running is the version of Superalgos that was at the plugins-docs branch the day you forked the project! This is because the process of switching branches downloads the software from your fork and not the upstream repository.",
"updated": 1618159308510
},
{
"style": "Success",
@@ -0,0 +1,16 @@
{
"tutorial": "How to aggregate data from different Exchanges in the same Chart ",
"pageNumber": "1",
"type": "How to combine Exchanges in a Chart Tutorial",
"definition": {
"text": "This Tutorial covers the process of pulling together the most diverse set of data: data from different exchanges! By the end of this tutorial you will be able to build charts almost impossible to find anywhere else.",
"updated": 1617376996248
},
"paragraphs": [
{
"style": "Text",
"text": "This Tutorial can be found in Workspace TBD.",
"updated": 1617376832024
}
]
}
@@ -0,0 +1,16 @@
{
"tutorial": "How to combine two markets in the same Chart",
"pageNumber": "1",
"type": "How to combine Markets in a Chart Tutorial",
"definition": {
"text": "This Tutorial will guide you through adding data from two different markets into the same chart. No more flipping between!",
"updated": 1617376121091
},
"paragraphs": [
{
"style": "Text",
"text": "This Tutorial can be found in workspace TBD.",
"updated": 1617376032973
}
]
}
@@ -0,0 +1,16 @@
{
"tutorial": "How to customize the Layers held in a Layer Manager",
"pageNumber": "1",
"type": "How to customize a Layer Manager Tutorial",
"definition": {
"text": "This Tutorial will walk you through customizing the layers available within a Timeline Chart's Layer Manager.",
"updated": 1617375254609
},
"paragraphs": [
{
"style": "Text",
"text": "This Tutorial can be found in Workspace TBD",
"updated": 1617375110981
}
]
}
@@ -0,0 +1,16 @@
{
"tutorial": "How to set up a custom Rate Scale for an Indicator",
"pageNumber": "1",
"type": "How to set up a custom Rate Scale Tutorial",
"definition": {
"text": "This Tutorial explains the ins and outs of setting up a custom Rate Scale for an indicator. A custom rate scale allows you to visualize multiple indicators side by side in even more flexible ways. ",
"updated": 1617375842097
},
"paragraphs": [
{
"style": "Text",
"text": "This Tutorial can be found in Workspace TBD",
"updated": 1617375668105
}
]
}
@@ -0,0 +1,16 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "1",
"type": "How to Set up a New Chart Tutorial",
"definition": {
"text": "This Tutorial walks through the basic inner workings of the Charting Space to help you learn how to create your own custom charts.",
"updated": 1617371694835
},
"paragraphs": [
{
"style": "Text",
"text": "This tutorial can be found in the Creating Custom Charts Workspace",
"updated": 1617660792312
}
]
}
@@ -0,0 +1,20 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "2",
"type": "Adding Charts - Introduction",
"definition": {
"text": "Today we will learn how to add your own custom Charts!",
"icon": {
"name": "chart-points",
"project": "Superalgos"
},
"updated": 1617323336592
},
"paragraphs": [
{
"style": "Text",
"text": "The charting system within Superalgos is quite powerful! It pulls together information from across the entire system so that you can conveniently visualize it in one place. As I am sure you have figured out by now, there are a lot of moving pieces within Superalgos. The Charting Space lets you tap into the specific information you want to see. You can look at different combinations of Indicators, Backtesting and Live Trading results, even data from different Markets and Exchanges! This flexibility makes it possible to customize charts to your heart’s content. Pretty cool right!",
"updated": 1617796990054
}
]
}
@@ -0,0 +1,40 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "3",
"type": "Adding Charts - Before We Begin",
"definition": {
"text": "Make sure you know the basics!",
"icon": {
"name": "tutorial",
"project": "Superalgos"
},
"updated": 1617326504902
},
"paragraphs": [
{
"style": "Text",
"text": "Before we get started, this tutorial assumes that you have finished the following tutorials:",
"updated": 1617631888828
},
{
"style": "List",
"text": "Welcome to Superalgos Tutorial"
},
{
"style": "List",
"text": "Basic Education Tutorial"
},
{
"style": "List",
"text": "Contribute to Superalgos Tutorial"
},
{
"style": "List",
"text": "Install a New Market Tutorial"
},
{
"style": "Text",
"text": "If you have not completed these tutorials and do not have a basic working knowledge of how to get around within your Workspace, this tutorial may be confusing. I would suggest that you pause and come back here once you know your way around a little."
}
]
}
@@ -0,0 +1,25 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "4",
"type": "Adding Charts - Charts without Tears",
"definition": {
"text": "I've got your back!",
"updated": 1617630234092,
"icon": {
"name": "charting-space",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Text",
"text": "If you are just starting out here in Superalgos, all this freedom might be a bit overwhelming. That’s where I come in! My friends and I will walk you through how to customize charts from start to finish! By the time we are done you will have the tools to create charts limited only by your imagination.",
"updated": 1617632679120
},
{
"style": "Note",
"text": "The goal of this tutorial is to teach you how to make custom charts. But if you are looking for a quick fix, the next step will walk you through the easiest way to add a new working chart. After that we will dig into the good stuff!",
"updated": 1617630368066
}
]
}
@@ -0,0 +1,43 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "5",
"type": "Adding Charts - Looking for a quick fix?",
"definition": {
"text": "If you are less interested in a custom chart and just want a quick way to see your the Trading System in action. Follow these steps.",
"icon": {
"name": "tutorial",
"project": "Superalgos"
},
"updated": 1617629741903
},
"paragraphs": [
{
"style": "List",
"text": "Backup your Backtesting Session and Live Trading Session Parameters.",
"updated": 1617451879969
},
{
"style": "List",
"text": "Uninstall the Market so everything gets cleaned."
},
{
"style": "List",
"text": "Backup your Trading System and then restore it.",
"updated": 1617629798302
},
{
"style": "List",
"text": "Install the market again. The installation process will detect two trading systems at the Workspace and automatically create the Trading Tasks and Charts you need.",
"updated": 1617629618176
},
{
"style": "List",
"text": "Restore your Session Parameters and replace the auto generated ones."
},
{
"style": "Text",
"text": "Now you should have a nice basic setup. Click next to see some real magic!",
"updated": 1617653700467
}
]
}
@@ -0,0 +1,34 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "6",
"type": "Adding Charts - Dashing Dashboards",
"definition": {
"text": "A Dashboard helps us stay organized.",
"icon": {
"name": "dashboard",
"project": "Superalgos"
},
"updated": 1617326878352
},
"paragraphs": [
{
"style": "Text",
"text": "To get us started, I want you to get a little more comfortable with how the Charting Space is set up.",
"updated": 1617798279418
},
{
"style": "Callout",
"text": "Expand the Charting Space node and take a look at the Dashboards underneath. What do you notice? ",
"updated": 1617798044669
},
{
"style": "Text",
"text": "That’s right! There is one Dashboard set up for Backtesting and one set up for Live Trading. Dashboards are a convenient way to group charts according to type.",
"updated": 1617798035878
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,20 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "7",
"type": "Adding Charts - Time Machines Hold It all Together",
"definition": {
"text": "You've seen these portals to another dimension before! Now let's take a closer look at the magical Time Machine.",
"icon": {
"name": "time-machine",
"project": "Superalgos"
},
"updated": 1617634105980
},
"paragraphs": [
{
"style": "Text",
"text": "You might have noticed each dashboard has a Time Machine attached to it. You have already encountered time machines in previous tutorials. But today we are going to be working with them a lot more closely. Take a minute and read their documentation page to get a better idea of what they do.",
"updated": 1617799568096
}
]
}
@@ -0,0 +1,29 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "8",
"type": "Adding Charts - Keep It in One Place",
"definition": {
"text": "Setting up a Time Machine will allow you to keep your data synchronized and accessible.",
"updated": 1617634554869,
"icon": {
"name": "time-machine",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Text",
"text": "The Time Machine is all about synchronizing. Whether it’s matching up candles with volume indicators or seeing exactly when a buy order was placed by your Trading Strategy, the time machine is your best friend in the Charting Space.",
"updated": 1617635549811
},
{
"style": "Success",
"text": "One Time Machine in the Design Space will show up as one box, or set of Charts, in the Charting Space",
"updated": 1617634300917
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,42 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "9",
"type": "Adding Charts - Without Further Ado",
"definition": {
"text": "I know I'm ready to add some charts. Are you?",
"icon": {
"name": "chart-points",
"project": "Superalgos"
},
"updated": 1617635653798
},
"paragraphs": [
{
"style": "Text",
"text": "Enough chit-chat, let’s start adding some charts! ",
"updated": 1617799641215
},
{
"style": "Callout",
"text": "Hover over the Testing Environment Dashboard and click Add Time Machine. ",
"updated": 1617799706852
},
{
"style": "Text",
"text": "Make sure to name it something you will recognize. A good naming practice is to reference the Trading System and type of Trading Session that will be connected to the chart. For us that would be: ",
"updated": 1617800245292
},
{
"style": "Json",
"text": "Lightning Strike Backtesting Session"
},
{
"style": "Text",
"text": " "
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,30 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "10",
"type": "Adding Charts - Why is It Blank?",
"definition": {
"text": "Woohoo, you did it! You have added your first custom chart.",
"updated": 1617636144825,
"icon": {
"name": "chart-points",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Text",
"text": "However, at this point, your chart is pretty boring.",
"updated": 1617636174999
},
{
"style": "Callout",
"text": "Check the Charting Space. Your Time Machine is there, but it is totally blank. ",
"updated": 1617801603388
},
{
"style": "Text",
"text": "That’s because we haven’t hooked it up to any of your data. Let’s change that!",
"updated": 1617801613196
}
]
}
@@ -0,0 +1,29 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "11",
"type": "Adding Charts - The Chart of many Talents",
"definition": {
"text": "The Timeline Chart gives you total control.",
"icon": {
"name": "timeline-chart",
"project": "Superalgos"
},
"updated": 1617452143875
},
"paragraphs": [
{
"style": "Text",
"text": "As I mentioned earlier, one of the main features the Charting Space offers is the ability to combine many different types of data all in one place. The Timeline Chart gives you this control! Each timeline chart allows you to collect the data you wish to see under a Layer Manager. As you may remember, the layer manager is what allows you to turn different layers on and off while inside a Time Machine.",
"updated": 1617839354763
},
{
"style": "Important",
"text": "When we connect Data Products to the Layers held by a layer manager, we gain access to that data within our chart!",
"updated": 1617637222752
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,42 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "12",
"type": "Adding Charts - Herding Layers",
"definition": {
"text": "Let's get into the nitty gritty of layer managment.",
"icon": {
"name": "layer-manager",
"project": "Superalgos"
},
"updated": 1617640657348
},
"paragraphs": [
{
"style": "Text",
"text": "Layer Managers keep track of all the layers connected beneath them. They are also the nodes that accept references to a variety of Data Mine Products. By establishing references with a particular Mine, we can easily add all the data associated with it. The three main types of data are:",
"updated": 1617839461481
},
{
"style": "List",
"text": "Data Mine Products – for market data and indicators."
},
{
"style": "List",
"text": "Trading Mine Products– for results of a trading system’s Backtesting Session or Live Trading Session.",
"updated": 1617641005190
},
{
"style": "List",
"text": "Learning Mine Products – for data output from learning algorithms. "
},
{
"style": "Text",
"text": "Let’s walk through how to hook these up!",
"updated": 1617641030236
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,25 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "13",
"type": "Adding Charts - Your Data Treasure Trove",
"definition": {
"text": "The Data Storage node holds all the important data your bots work so hard to produce. Think of it like your own personal tresure chest full of data.",
"icon": {
"name": "data-storage",
"project": "Superalgos"
},
"updated": 1617373173279
},
"paragraphs": [
{
"style": "Text",
"text": "All of the Data Products you will want to visualize in your charts are kept in the Data Storage node. Let’s start by getting some practice finding and hooking up our chart to Data Mine Products. Remember, Data Mines process the information from Exchanges. Accessing these products with our chart will let us visualize Indicators and other Market Data.",
"updated": 1617643578375
},
{
"style": "Note",
"text": "One great thing about Superalgos is that it uses consistent logic across the system. What that means for us now is that once you learn to hook a chart to one type of data you will know the basic steps to hook your charts to anything you want!",
"updated": 1617645915009
}
]
}
@@ -0,0 +1,34 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "14",
"type": "Adding Charts - Follow the Tree!",
"definition": {
"text": "Follow the Data Mines Data hierarchy and find the Data Mine Products.",
"icon": {
"name": "data-mines-data",
"project": "Superalgos"
},
"updated": 1617849486659
},
"paragraphs": [
{
"style": "Callout",
"text": "Keep following the hierarchy. See if you can find the Data Mine Products nodes on your own.",
"updated": 1617849736915
},
{
"style": "Text",
"text": "Did you find them? Keep going farther down the hierarchy until you see them!",
"updated": 1617849595158
},
{
"style": "Text",
"text": ""
},
{
"style": "Important",
"text": "You should see three data mine products nodes. One for each Data Mine install within this Workspace.",
"updated": 1617849622065
}
]
}
@@ -0,0 +1,25 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "15",
"type": "Adding Charts - The Data You Want to See",
"definition": {
"text": "You control the flow of data.",
"updated": 1617646900550,
"icon": {
"name": "data-storage",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Text",
"text": "Do you notice any similarity with the other parts of Superalgos you’ve seen? That’s right! The hierarchy is organized according to Project, Exchange, Market, and Data Mine. This is the same basic organization you will find with all data here in Superalgos.",
"updated": 1617840932423
},
{
"style": "Important",
"text": "This granularity means you can access Data Products in any combination. Do you want to see data from two different exchanges on the same market? Easily possible. Do you want to see data from two similar markets side by side? Piece of cake! The combinations of data you can view within your charts is truly up to your imagination.",
"updated": 1617842448486
}
]
}
@@ -0,0 +1,30 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "16",
"type": "Adding Charts - Hooking up a Chart to Data Products",
"definition": {
"text": "Get your Time Machine in position. ",
"icon": {
"name": "data-mine-products",
"project": "Superalgos"
},
"updated": 1617841161571
},
"paragraphs": [
{
"style": "Text",
"text": "Whew! I am getting a little carried away. My friends will cover these exciting possiblities in a little while. Let's refocus and finish adding those Data Mine Products we've been working on.",
"updated": 1617841292233
},
{
"style": "Callout",
"text": "Pin and drag your whole Time Machine over to Data Mine Products nodes you found earlier.",
"updated": 1617842351106
},
{
"style": "Success",
"text": "Don't forget Ctrl + ← → ↑ ↓. It's a bit of a trek!",
"updated": 1617841738597
}
]
}
@@ -0,0 +1,28 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "18",
"type": "Adding Charts - Make the Connection",
"definition": {
"text": "Let's make the connection.",
"icon": {
"name": "delink-node",
"project": "Superalgos"
},
"updated": 1617374708610
},
"paragraphs": [
{
"style": "Text",
"text": "Out of the three Data Mine Products nodes available, we are going to connect our chart to the Masters Data Mine.",
"updated": 1617850389465
},
{
"style": "Callout",
"text": "Find the Layer Manager under the Timeline Chart you added earlier. Then establish a reference between it and the Masters Data Mine Products node."
},
{
"style": "Success",
"text": "If things are connected correctly, the name of the data mine should appear over the layer manager."
}
]
}
@@ -0,0 +1,28 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "19",
"type": "Adding Charts - Add the Layers",
"definition": {
"text": "Add those layers!",
"updated": 1617648557491,
"icon": {
"name": "layer",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Callout",
"text": "The last step is to hover over the Layer Manager and click Add All Mine Layers. ",
"updated": 1617850457047
},
{
"style": "Text",
"text": "This will automatically add references to all of the individual layers produced by the Data Mine."
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,20 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "20",
"type": "Adding Charts - Hooking up a Chart to a Trading System",
"definition": {
"text": "I hope you are ready to see your Trading System in action!",
"icon": {
"name": "chart-points",
"project": "Superalgos"
},
"updated": 1617369846347
},
"paragraphs": [
{
"style": "Text",
"text": "The next thing you will want to connect with most charts are the results of your trading strategies. For the most part, this is the same as connecting to a Data Mine. There are just a few differences I will walk you through. One major difference is that each Time Machine can only reference one Trading Session. For example, one Backtesting Session that is associated with one Trading System. This helps keep your charts clean and readable. It would be confusing to see buy orders from two different trading systems all at once! What this means for connecting a chart is that we need to establish two references in order for things to work.",
"updated": 1617851405458
}
]
}
@@ -0,0 +1,33 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "21",
"type": "Adding Charts - Connection One",
"definition": {
"text": "Let's make the first connection. Go find your Time Machine and drag it back here.",
"icon": {
"name": "delink-node",
"project": "Superalgos"
},
"updated": 1617883855631
},
"paragraphs": [
{
"style": "Text",
"text": "The first connection is between a Trading Session and the Time Machine we have been working on. This reference tells our chart which Trading System and Session to listen for.",
"updated": 1617883945973
},
{
"style": "Callout",
"text": "Once you are back create a reference between your Time Machine and the Backtesting Session. "
},
{
"style": "Text",
"text": ""
},
{
"style": "Note",
"text": "These steps are the same for connecting to a Live Trading Session. The only difference is the Session will be found under the Production Trading Task hierarchy instead.",
"updated": 1617884102564
}
]
}
@@ -0,0 +1,32 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "22",
"type": "Adding Charts - Connection Two",
"definition": {
"text": "We are almost there! Go drag your Time Machine back over here.",
"icon": {
"name": "delink-node",
"project": "Superalgos"
},
"updated": 1617886454003
},
"paragraphs": [
{
"style": "Text",
"text": "Under the Session Reference node you will see the Trading Mine Products node we are after."
},
{
"style": "Callout",
"text": "Now create a reference between your new Layer Manager and the Trading Mind Products node.",
"updated": 1617886479339
},
{
"style": "Success",
"text": "If you hooked it up correctly, the name Masters should appear over the layer manager."
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,25 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "23",
"type": "Adding Charts - Check the Chart",
"definition": {
"text": "At this point everything is all hooked up, hurray! ",
"updated": 1617652418858,
"icon": {
"name": "chart-points",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Important",
"text": "Make sure to run the Backtesting Session for the Lightning Strike Trading System and wait for it to finish.",
"updated": 1617887112622
},
{
"style": "Callout",
"text": "Check your chart by turning on a few Trading System layers.",
"updated": 1617887153627
}
]
}
@@ -0,0 +1,34 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "24",
"type": "Adding Charts - Easy as 1, 2, 3",
"definition": {
"text": "You did it! I knew you could.",
"icon": {
"name": "charting-space",
"project": "Superalgos"
},
"updated": 1617370584556
},
"paragraphs": [
{
"style": "Text",
"text": "Congratulations, your custom chart is now hooked up and working! You now know the basic steps of chart creation. You can repeat the same steps, adding more Timeline Charts, to connect any combination of data you want. Just a quick reminder, the three types of nodes you can connect a Timeline Chart’s Layer Manager to are:",
"updated": 1617886835178
},
{
"style": "List",
"text": "Data Mine Products – for Market Data and indicators.",
"updated": 1617453477817
},
{
"style": "List",
"text": "Trading Mine Products– for the results of a Trading System’s Backtesting Session or Live Trading Session.",
"updated": 1617453541079
},
{
"style": "List",
"text": "Learning Mine Products – for data output from learning algorithms. "
}
]
}
@@ -0,0 +1,44 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "25",
"type": "Adding Charts - Before I Go",
"definition": {
"text": "Want some more help figuring out complex chart configurations? You are in luck! I have some friends who would love to help you out.",
"icon": {
"name": "charting-space",
"project": "Superalgos"
},
"updated": 1617371031010
},
"paragraphs": [
{
"style": "Text",
"text": "Fire up one of my friends to keep going!",
"updated": 1617656189804
},
{
"style": "List",
"text": "How to customize a Layer Manager Tutorial",
"updated": 1617375492766
},
{
"style": "List",
"text": "How to set up a custom Rate Scale Tutorial",
"updated": 1617453801398
},
{
"style": "List",
"text": "How to combine Markets in a Chart Tutorial",
"updated": 1617453794685
},
{
"style": "List",
"text": "How to combine Exchanges in a Chart Tutorial",
"updated": 1617453789889
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,30 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "21.5",
"type": "Adding Charts - Back to Data Storage",
"definition": {
"text": "Let's find some more Data Products.",
"updated": 1617883193525,
"icon": {
"name": "trading-mines-data",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Text",
"text": "You should notice there are three branches. One for each type of data we can access in our charts. Since we are now interested in the data from our Trading System, we need the data products held under the Trading Mines Data hierarchy. ",
"updated": 1617884873448
},
{
"style": "Callout",
"text": "Just like before, follow the hierarchy until you find the Trading Mine Products nodes.",
"updated": 1617884949563
},
{
"style": "Success",
"text": "Make sure to look under the Trading Session Reference nodes!",
"updated": 1617884973014
}
]
}
@@ -0,0 +1,28 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "21.7",
"type": "Adding Charts - Another Timeline Chart",
"definition": {
"text": "To connect with our Trading System we will need another Timeline Chart.",
"updated": 1617885750903,
"icon": {
"name": "timeline-chart",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Callout",
"text": "Go find your Time Machine and add a new Timeline Chart."
},
{
"style": "Text",
"text": "Remember to name it for easy recognition. If we name it according to type of mine or data. A good name would be:",
"updated": 1617885817072
},
{
"style": "Json",
"text": "Trading System Layers"
}
]
}
@@ -0,0 +1,24 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "22.5",
"type": "Adding Charts - Don’t Forget the Layers!",
"definition": {
"text": "You’ve done this before!",
"updated": 1617888380713,
"icon": {
"name": "layer",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Callout",
"text": "Hover over the Layer Manager and click Add All Mine Layers. "
},
{
"style": "Text",
"text": "This is an easy step to forget but very important! If there are't any layers under the layer manager, nothing will show up no matter how hard you try.",
"updated": 1617888419678
}
]
}
@@ -0,0 +1,24 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "22.5",
"type": "Adding Charts – Don’t Forget to Add the Layers!",
"definition": {
"text": "You’ve done this before!",
"updated": 1617888064958,
"icon": {
"name": "layer",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Callout",
"text": "Hover over the Layer Manager and click Add All Mine Layers. "
},
{
"style": "Text",
"text": "This is an easy step to forget but very important! If there aren't any layers under the layer manager, nothing will show up no matter how hard you try.",
"updated": 1617888163173
}
]
}
@@ -0,0 +1,29 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": " 23.5",
"type": "Adding Charts - Not Seeing Anything?",
"definition": {
"text": "Are you having trouble with the Trading Layers?",
"updated": 1617887420953,
"icon": {
"name": "bot-data-dependencies",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Important",
"text": "Remember to pay attention to the Time Frame and dates the session was run under. Otherwise you won’t see anything!",
"updated": 1617887429273
},
{
"style": "Success",
"text": "The Lightning Strike Backtesting Session was run on the one minute time frame from September 1 2020 to September 2 2020.",
"updated": 1617887385163
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,25 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "6.5",
"type": "Adding Charts - Dashboards in the Future",
"definition": {
"text": "The future holds more in store.",
"updated": 1617798674297,
"icon": {
"name": "under-construction",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Text",
"text": "Eventually Dashboards will be used to bring multiple Time Machines together in useful configurations, but for right now they helps us stay organized.",
"updated": 1617798575876
},
{
"style": "Important",
"text": "Superalgos is a community project. If you are a developer that would like to see this feature come to life, you can help make it happen!",
"updated": 1617799444931
}
]
}
@@ -0,0 +1,33 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "9.5",
"type": "Adding Charts - Add a Timeline Chart",
"definition": {
"text": "Now that we have something to hold our charts, let's go ahead and add one!",
"updated": 1617800759702,
"icon": {
"name": "timeline-chart",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Callout",
"text": "Hover over your Time Machine and click Add Timeline Chart.",
"updated": 1617800816707
},
{
"style": "Text",
"text": "Just like with time machines, giving a helpful name to a Timeline Chart is important. A good naming practice is to name timeline charts after the Data Mine or Data Product with which it will be connected. Today we will be adding Data Mine data to this timeline chart. So a helpful name would be:",
"updated": 1617801165071
},
{
"style": "Json",
"text": "Data Mine Layers"
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,30 @@
{
"tutorial": "How to Set up a New Chart",
"pageNumber": "19.5",
"type": "Adding Charts - It’s Alive!",
"definition": {
"text": "Let's take a look at your new working chart!",
"updated": 1617850745525,
"icon": {
"name": "trading-system",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Important",
"text": "First make sure to run all Data Tasks and wait for them to reach 100%.",
"updated": 1617850764129
},
{
"style": "Callout",
"text": "Fire up the Charting Space and take a look at your Chart. Have some fun and turn a few layers on and off.",
"updated": 1617850952279
},
{
"style": "Text",
"text": "If can see layers showing up when you turn them on, great job! If nothing is showing up, go back over previous steps and make sure you didn't miss anything.",
"updated": 1617851145572
}
]
}
@@ -0,0 +1,34 @@
{
"tutorial": "Welcome to Superalgos!",
"pageNumber": "110.5",
"type": "Tutorial Step - Beware of Impersonators!",
"definition": {
"text": "Superalgos Admins, the Core Team, and Community Mods will never contact you directly unless you contact them first!",
"icon": {
"name": "bullet-warning",
"project": "Superalgos"
},
"updated": 1617608574624,
"translations": [
{
"language": "IT",
"text": "Gli admin di Superalgos non ti contatteranno mai direttamente, a meno che non li contatti tu per primo.",
"updated": 1618074109290
}
]
},
"paragraphs": [
{
"style": "Warning",
"text": "Scammers are lurking! Beware! It's no news that trading-related groups attract all sorts of scammers, and we are aware that they contact people in our groups attempting all sorts of tricks. We will never ask you for API keys, coins, or cash. In fact, we will never ask you to trust us in any way! We want to make it clear that if someone contacts you directly claiming to work with or for the project, it is a scam. Please report scammers in the Community group so that they may be banned, and to increase awareness of the problem, but also block them and report them to Telegram if the option is available.",
"updated": 1617608980211,
"translations": [
{
"language": "IT",
"text": "Attenzione, gli scammers sono in agguato! Non è una novità che i gruppi riguardanti il trading attraggano ogni tipo di scammer, e siamo al corrente del fatto che contattino persone del gruppo tentando di truffarle. Non chiederemo mai API keys, crypto o soldi. Di fatto, non ti chiederemo di fidarti di noi in alcun modo! Vogliamo che sia chiaro che se qualcuno ti contatta direttamente e dichiarando di lavorare per o con il progetto, è uno scam. Per favore segnalate gli scammers nel canale Community così che possano essere bannati, bloccateli e se possibile segnalateli a Telegram stesso.",
"updated": 1618074329147
}
]
}
]
}
@@ -7,20 +7,48 @@
"project": "Superalgos",
"name": "indicator-bot"
},
"text": "Talking about block-building, we are now in the confines of the Masters Data Mine. To your left, the definition of one of the bots you sent mining minutes ago."
"text": "Talking about block-building, we are now in the confines of the Masters Data Mine. To your left, the definition of one of the bots you sent mining minutes ago.",
"translations": [
{
"language": "IT",
"text": "A proposito di costruzioni a blocchi, ora siamo nei confini del Masters Data Mine. Alla tua sinistra vedi la definizione di uno dei bots per cui hai avviato il mining giusto prima.",
"updated": 1618056284204
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Pretty much like with the Lego-like definitions of the Charting Space, bots are too defined on a visual environment."
"text": "Pretty much like with the Lego-like definitions of the Charting Space, bots are too defined on a visual environment.",
"translations": [
{
"language": "IT",
"text": "Analogamente alle dinamiche \"stile Lego\" del Charting Space, anche i bots sono definiti visivamente.",
"updated": 1618056303696
}
]
},
{
"style": "Callout",
"text": "All developers need to code is the actual Data Building Procedure."
"text": "All developers need to code is the actual Data Building Procedure.",
"translations": [
{
"language": "IT",
"text": "Tutto ciò che gli sviluppatori devono programmare è la Data Building Procedure che verrà usata.",
"updated": 1618056067442
}
]
},
{
"style": "Text",
"text": "Everything else is defined on a visual setting: processes with their dependencies, outputs and so on, and products, with their record and dataset definitions, etc."
"text": "Everything else is defined on a visual setting: processes with their dependencies, outputs and so on, and products, with their record and dataset definitions, etc.",
"translations": [
{
"language": "IT",
"text": "Ogni cosa ha una rappresentazione visiva: sia i processi, con le loro dipendenze e output, che i prodotti, con i loro record e datasets, così come ogni altra entità presente nel programma.",
"updated": 1618056262610
}
]
}
]
}
@@ -7,17 +7,38 @@
"project": "Superalgos",
"name": "plotter"
},
"text": "And this is how plotters are built! Plotters create graphical representations of data... from candles, to everything else!"
"text": "And this is how plotters are built! Plotters create graphical representations of data... from candles, to everything else!",
"translations": [
{
"language": "IT",
"text": "Ed ecco come vengono costruiti i Plotters! Essi creano rappresentazioni grafiche di tutti i dati...dalle candele, a qualsiasi altra cosa!",
"updated": 1618056813296
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Again, visual scripting at its best! Plotters use stylized polygons made out of coordinate points to paint lines and shapes that represent data. Every layer made available on the charts is created with a set of definitions of the sort you are looking at right now. The particular case of the Resistances and Supports bot is a rather complex one, but does showcase the power of the tool!"
"text": "Again, visual scripting at its best! Plotters use stylized polygons made out of coordinate points to paint lines and shapes that represent data. Every layer made available on the charts is created with a set of definitions of the sort you are looking at right now. The particular case of the Resistances and Supports bot is a rather complex one, but does showcase the power of the tool!",
"translations": [
{
"language": "IT",
"text": "Di nuovo, il meglio del visual scripting! I Plotters usano poligoni stilizzati definiti da punti e coordinate per disegnare linee e forme che rappresentano dati. Ogni layer disponibile sul grafico è creato da un insieme di definizioni come quello che stai guardando ora. Il caso del bot dei Supporti e Resistenze è abbastanza complesso, ma mostra la potenza di questo strumento!",
"updated": 1618057031198
}
]
},
{
"style": "Callout",
"text": "Find the Resistance Zone 5 Polygon (to the left), expand it, and crawl your way up the branches for a sneak peek of how this beauty was built!",
"updated": 1610623154560
"updated": 1610623154560,
"translations": [
{
"language": "IT",
"text": "Cerca il Resistance 5 Polygon (qui a sinistra), espandilo e esplora i percorsi che collegano i vari componenti per osservare come è stata costruita questa bellezza!",
"updated": 1618057208787
}
]
}
]
}
@@ -7,22 +7,50 @@
"project": "Superalgos",
"name": "testing-trading-tasks"
},
"text": "We are back on the Network hierarchy to show you one of the core strategy-testing resources built-in the Trading Bot."
"text": "We are back on the Network hierarchy to show you one of the core strategy-testing resources built-in the Trading Bot.",
"translations": [
{
"language": "IT",
"text": "Rieccoci nella gerarchia Network. Ora ti mostro una delle risorse chiave per testare le strategie di un Trading Bot.",
"updated": 1618057404730
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "But before you run your first Backtesting Session, let's go on a quick scouting mission to grasp how the Testing Trading Tasks node is set up.",
"updated": 1610638880718
"updated": 1610638880718,
"translations": [
{
"language": "IT",
"text": "Ma prima di lanciare la nostra prima Backtesting Session, lanciamoci in una piccola esplorazione per capire come è configurato il nodo delle Testing Trading Tasks.",
"updated": 1618057489202
}
]
},
{
"style": "Callout",
"text": "Expand the Testing Trading Tasks node and look at the structure of offspring nodes... Looks familiar?",
"updated": 1616427797952
"updated": 1616427797952,
"translations": [
{
"language": "IT",
"text": "Espandi il nodo delle Testing Trading Tasks e guarda come è strutturato...ti ricorda qualcosa?",
"updated": 1618057585015
}
]
},
{
"style": "Text",
"text": "Indeed! It resembles the Data Tasks section: tasks are organized by exchange, market, and trading mine, so that you may test any number of strategies optimized for different markets, on multiple exchanges."
"text": "Indeed! It resembles the Data Tasks section: tasks are organized by exchange, market, and trading mine, so that you may test any number of strategies optimized for different markets, on multiple exchanges.",
"translations": [
{
"language": "IT",
"text": "Esatto! Assomiglia alla sezione dei Data Tasks: le task sono organizzate per exchange, mercato e Trading Mine, cosicchè tu possa testare diverse strategie per mercati differenti e su exchange diversi.",
"updated": 1618057668667
}
]
}
]
}
@@ -7,22 +7,50 @@
"project": "Superalgos",
"name": "network-node"
},
"text": "Picture an army of bots working with multiple exchanges, markets, and strategies, running on a network ala trading farm."
"text": "Picture an army of bots working with multiple exchanges, markets, and strategies, running on a network ala trading farm.",
"translations": [
{
"language": "IT",
"text": "Immagina un esercito di bots che lavorano con vari exchange, mercati e strategie, coordinati da un network che fa da trading farm.",
"updated": 1618057758985
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "That is what the Network Node is about. What you've seen so far is running on a single machine. But...",
"updated": 1616427867794
"updated": 1616427867794,
"translations": [
{
"language": "IT",
"text": "Il Network Node fa esattamente questo. I processi che hai visto finora girano su una singola macchina. Però...",
"updated": 1618057806513
}
]
},
{
"style": "Callout",
"text": "Superalgos supports distributing and coordinating tasks across networks of nodes running the Client! This enables smart and scalable operations. Any machine running the GUI may control the enterprise!",
"updated": 1616693637435
"updated": 1616693637435,
"translations": [
{
"language": "IT",
"text": "Superalgos permette di distribuire e coordinare tasks attraverso una rete di macchine che eseguono il Client! Questo permette di eseguire operazioni avanzate e scalabili. Qualsiasi macchina che esegue la GUI può controllare il tutto!",
"updated": 1618057957707
}
]
},
{
"style": "Text",
"text": "You may set up a network with a few Raspberry Pi, an industrial-grade datacenter&mdash;or anything in between."
"text": "You may set up a network with a few Raspberry Pi, an industrial-grade datacenter&mdash;or anything in between.",
"translations": [
{
"language": "IT",
"text": "Puoi creare network arbitrariamente complessi che vanno da qualche Raspberry Pi a un datacenter industriale.",
"updated": 1618058007870
}
]
}
]
}
@@ -5,26 +5,54 @@
"definition": {
"icon": {
"name": "tensorflow-project",
"project": "TensorFlow"
"project": "Superalgos"
},
"text": "The latest version of Superalgos features an experimental integration of TensorFlow to leverage ML from within the app!",
"updated": 1616691534660
"updated": 1616691534660,
"translations": [
{
"language": "IT",
"text": "L'ultima versione di Superalgos presenta un integrazione sperimentale per sfruttare il machine learning.",
"updated": 1618058419040
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "The integration maps the definition of a NodeJS TensorFlow Library featuring a Supervised Learning algorithm and its Artificial Neural Network in the same kind of structure of nodes typical of Superalgos.",
"updated": 1616692845459
"updated": 1616692845459,
"translations": [
{
"language": "IT",
"text": "L'integrazione mappa la TensorFlow Library di NodeJS, che contiene un algoritmo di Supervised Learning e la relativa Artificial Neural Network, allo stesso tipo di struttura di nodi tipica di Superalgos.",
"updated": 1618058443954
}
]
},
{
"style": "Note",
"text": "The integration leverages the rest of the Superalgos infrastructure, so that you may use your datasets to train ML algos and use the resulting models from within trading systems!",
"updated": 1616692959991
"updated": 1616692959991,
"translations": [
{
"language": "IT",
"text": "L'integrazione sfrutta l'infrastuttura di Superalgos, quindi puoi usare i tuoi datasets per fare il training degli algoritmi di ML e usarne i modelli direttamente dal Trading System.",
"updated": 1618058363973
}
]
},
{
"style": "Success",
"text": "After doing the first few tutorials, take a look at the Machine Learning Demo Plugin Workspace!",
"updated": 1616693444144
"updated": 1616693444144,
"translations": [
{
"language": "IT",
"text": "Dopo i primi tutorial, dai un'occhiata a Machine Learning Demo Plugin Workspace!",
"updated": 1618058432041
}
]
}
]
}
}
@@ -7,16 +7,37 @@
"project": "Superalgos",
"name": "under-construction"
},
"text": "Please, do not be surprised to find an under construction sign here and there..."
"text": "Please, do not be surprised to find an under construction sign here and there...",
"translations": [
{
"language": "IT",
"text": "Non sorprenderti se trovi segnali di \"lavori in corso\" qua e là...",
"updated": 1618059716381
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "As I mentioned earlier, Superalgos is constantly growing, and infrastructure architected for the upcoming version may occasionally be merged to the current version in a service pack, along with necessary fixes and minor improvements."
"text": "As I mentioned earlier, Superalgos is constantly growing, and infrastructure architected for the upcoming version may occasionally be merged to the current version in a service pack, along with necessary fixes and minor improvements.",
"translations": [
{
"language": "IT",
"text": "Come detto prima, Superalgos è in continua evoluzione e gli sviluppi per la versione successiva potrebbero essere occasionalmente implementati nella versione corrente, per risolvere problemi o apportare piccole migliorie.",
"updated": 1618059772511
}
]
},
{
"style": "Callout",
"text": "If you are curious about what is cooking for the upcoming Superalgos release, join the <a href='https://t.me/superalgosdevelop' target='_blank' style='color:blue;'>Superalgos Develop</a> Telegram group."
"text": "If you are curious about what is cooking for the upcoming Superalgos release, join the <a href='https://t.me/superalgosdevelop' target='_blank' style='color:blue;'>Superalgos Develop</a> Telegram group.",
"translations": [
{
"language": "IT",
"text": "Se vuoi scoprire cosa bolle in pentola per la prossima release di Superalgos, unisciti al canale Telegram Superalgos Develop.",
"updated": 1618059823365
}
]
}
]
}
@@ -7,17 +7,38 @@
"project": "Superalgos",
"name": "backtesting-session"
},
"text": "We'll run a Backtesting Session with a bunch of preconfigured parameters so that you may have a quick glimpse at how simulations work."
"text": "We'll run a Backtesting Session with a bunch of preconfigured parameters so that you may have a quick glimpse at how simulations work.",
"translations": [
{
"language": "IT",
"text": "Lanceremo una Backtesting Session con dei parametri preconfigurati così da dare un'occhiata al funzionamento delle simulazioni.",
"updated": 1618059892671
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "As you can see to the right, a trading session has a reference to a Trading System. That is, the Trading Bot will apply the rules of the referenced trading system to make decisions. There's also a reference to a Trading Engine, a subject worth its own chapter, so I'll leave it for later!",
"updated": 1610639102636
"updated": 1610639102636,
"translations": [
{
"language": "IT",
"text": "Come vedi a destra, una Trading Sessionsi riferisce a un Trading System. Ciò significa che il Trading Bot applicherà le regole del corrispondente Trading System per prendere decisioni. C'è anche un riferimento a un Trading Engine, ma di questo parleremo in un capitolo successivo.",
"updated": 1618059980494
}
]
},
{
"style": "Callout",
"text": "The trading session is affected by several parameters. Take a quick look at their configurations selecting Configure on the menu!"
"text": "The trading session is affected by several parameters. Take a quick look at their configurations selecting Configure on the menu!",
"translations": [
{
"language": "IT",
"text": "La Trading Session è controllata da vari parametri. Dai un'occhiata alle loro configurazioni selezionando Configure dal menù!",
"updated": 1618060016221
}
]
}
]
}
@@ -7,38 +7,94 @@
"project": "Superalgos",
"name": "trading-parameters"
},
"text": "Trading Parameters determine key aspects of how the trading session is run. Let's take a quick, superficial look..."
"text": "Trading Parameters determine key aspects of how the trading session is run. Let's take a quick, superficial look...",
"translations": [
{
"language": "IT",
"text": "I Trading Parameters controllano gli aspetti chiave dell'esecuzione della sessione di trading. Diamo un'occhiata veloce...",
"updated": 1618060155151
}
]
},
"paragraphs": [
{
"style": "List",
"text": "Session Base Asset: no capital is assigned in BTC."
"text": "Session Base Asset: no capital is assigned in BTC.",
"translations": [
{
"language": "IT",
"text": "Session Base Asset: 0 BTC",
"updated": 1618060455866
}
]
},
{
"style": "List",
"text": "Session Quoted Asset: 1000 USDT of initial capital."
"text": "Session Quoted Asset: 1000 USDT of initial capital.",
"translations": [
{
"language": "IT",
"text": "Session Quoted Asset: 1000 USDT di capitale iniziale",
"updated": 1618060205541
}
]
},
{
"style": "List",
"text": "Time Range: we'll test a single day, 2020-09-01."
"text": "Time Range: we'll test a single day, 2020-09-01.",
"translations": [
{
"language": "IT",
"text": "Time Range: test su un singolo giorno (2020-09-01)",
"updated": 1618060612074
}
]
},
{
"style": "List",
"text": "Time Frame: orders are placed/canceled every minute, thus 01-min is appropriate."
"text": "Time Frame: orders are placed/canceled every minute, thus 01-min is appropriate.",
"translations": [
{
"language": "IT",
"text": "Time Frame: 01-min (dato che gli ordini vengono inseriti/cancellati ogni minuto)",
"updated": 1618060502887
}
]
},
{
"style": "List",
"text": "Slippage: it's irrelevant for this case, as this particular trading system uses limit orders only.",
"updated": 1610639262905
"updated": 1610639262905,
"translations": [
{
"language": "IT",
"text": "Slippage: irrilevante in questo di Trading System",
"updated": 1618060520878
}
]
},
{
"style": "List",
"text": "Fee Structure: 0.1% is the lower Binance tier."
"text": "Fee Structure: 0.1% is the lower Binance tier.",
"translations": [
{
"language": "IT",
"text": "Fee Structure: 0.1% è il livello iniziale di Binance.",
"updated": 1618060361331
}
]
},
{
"style": "Text",
"text": "The remaining parameters do not affect the simulation. To learn more about Trading Parameters, take a look at the documentation.",
"updated": 1610640777415
"updated": 1610640777415,
"translations": [
{
"language": "IT",
"text": "I restanti parametri non influenzano questa simulazione. Se vuoi saperne di più, consulta la sezione Trading Parameters nella documentazione.",
"updated": 1618060588588
}
]
}
]
}
@@ -7,21 +7,49 @@
"project": "Superalgos",
"name": "task"
},
"text": "Let's get going! This is going to be quick anyway, as we are testing a single day worth of historic data."
"text": "Let's get going! This is going to be quick anyway, as we are testing a single day worth of historic data.",
"translations": [
{
"language": "IT",
"text": "Forza, iniziamo! Sarà comunque una cosa veloce, perchè stiamo testando dati di una sola giornata.",
"updated": 1618060660046
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Running a trading task is quite similar to running a data mining task. The difference lies in that&mdash;after running the task&mdash;you also need to run the trading session."
"text": "Running a trading task is quite similar to running a data mining task. The difference lies in that&mdash;after running the task&mdash;you also need to run the trading session.",
"translations": [
{
"language": "IT",
"text": "Eseguire una task di trading è simile a eseguire una task di data mining. La differenza sta nel fatto che, dopo aver lanciato la task, devi anche lanciare la trading session.",
"updated": 1618060706178
}
]
},
{
"style": "Callout",
"text": "Select Run on the Task menu!<br/><br/>Now select Run on the Backtesting Session menu!",
"updated": 1616428472102
"updated": 1616428472102,
"translations": [
{
"language": "IT",
"text": "Seleziona Run dal menu Task, e poi seleziona Run dal menu della Backtesting Session!",
"updated": 1618060790679
}
]
},
{
"style": "Note",
"text": "When the progress notice of the Trading Process Instance get's to the 100% mark, stop the task and click Next."
"text": "When the progress notice of the Trading Process Instance get's to the 100% mark, stop the task and click Next.",
"translations": [
{
"language": "IT",
"text": "Quando la progress bar della Trading Process Instance raggiunge il 100%, ferma la task e clicca Next.",
"updated": 1618060849542
}
]
}
]
}
@@ -7,20 +7,48 @@
"project": "Superalgos",
"name": "time-machine"
},
"text": "I took the liberty of bringing you to a particular moment in time, interesting for what comes next."
"text": "I took the liberty of bringing you to a particular moment in time, interesting for what comes next.",
"translations": [
{
"language": "IT",
"text": "Mi sono preso la libertà di portarti in un particolare momento del tempo, per mostrarti cosa succede.",
"updated": 1618060917160
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "You are about to be exposed to the beauty of simulations. Am I a simulation? Are you? Is this whole thing real?"
"text": "You are about to be exposed to the beauty of simulations. Am I a simulation? Are you? Is this whole thing real?",
"translations": [
{
"language": "IT",
"text": "Stai per assistere alla bellezza delle simulazioni. Sono una simulazione? O lo sei tu? È reale tutto ciò?",
"updated": 1618060948467
}
]
},
{
"style": "Callout",
"text": "Look around and decide for yourself!"
"text": "Look around and decide for yourself!",
"translations": [
{
"language": "IT",
"text": "Guardati intorno e decidilo tu!",
"updated": 1618060965103
}
]
},
{
"style": "Success",
"text": "First of all, notice you are now in the 1-minute time frame, thus, these are 1-minute candles. The span of time in your screen is little more than one hour, at the beginning of September 1st 2020."
"text": "First of all, notice you are now in the 1-minute time frame, thus, these are 1-minute candles. The span of time in your screen is little more than one hour, at the beginning of September 1st 2020.",
"translations": [
{
"language": "IT",
"text": "Prima di tutto, nota che sei nel time frame 1-min, quindi queste sono candele da un minuto. L'intervallo di tempo sul tuo schermo è di circa un'ora, e si riferisce all'inizio del 1 settembre 2020.",
"updated": 1618061043559
}
]
}
]
}
@@ -7,13 +7,27 @@
"project": "Superalgos",
"name": "trading-system"
},
"text": "We've run a backtest but we haven't discussed the Trading System we are testing! Let's go through the basics!"
"text": "We've run a backtest but we haven't discussed the Trading System we are testing! Let's go through the basics!",
"translations": [
{
"language": "IT",
"text": "Abbiamo lanciato un backtest ma non abbiamo discusso del Trading System che stiamo testando! Facciamolo ora!",
"updated": 1618061084694
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "The trading idea is buy \"the falling knife\" and sell \"the rebound\". The strategy places a Limit Buy Order a distance below the price. If the order is not filled by the next minute, the order is canceled and a new order is placed, potentially at an adjusted rate. If the price drops suddenly, chances are the order will get filled. If that happens, then the strategy tries to sell at a higher price.",
"updated": 1616428600039
"updated": 1616428600039,
"translations": [
{
"language": "IT",
"text": "L'idea è comprare il \"falling knife\" e vendere il \"rebound\". La strategia piazza un Limit Buy Order al di sotto dell'attuale prezzo. Se l'ordine non viene evaso nel giro del minuto successivo, viene cancellato e ne viene creato uno nuovo, eventualmente a un prezzo migliore. Se il prezzo scende, è probabile che l'ordine venga evaso: a quel punto la strategia tenta di vendere a un prezzo maggiore.",
"updated": 1618061264322
}
]
},
{
"style": "Text",
@@ -22,7 +36,14 @@
{
"style": "Note",
"text": "Let's not discuss the merits of the trading idea but the implementation. This is just a demo to show off the capacities of the Trading Bot, not the strategy per se.",
"updated": 1610640921014
"updated": 1610640921014,
"translations": [
{
"language": "IT",
"text": "Non discutiamo dell'efficacia del metodo, ma della sua implementazione. Questa è una demo per mostrare le capacità del Trading Bot, non la strategia in sè.",
"updated": 1618061327170
}
]
}
]
}
@@ -7,21 +7,49 @@
"project": "Superalgos",
"name": "bullet-limit-buy-order"
},
"text": "Do you see the green bullets with an L in the center? Those are the limit buy orders I mentioned."
"text": "Do you see the green bullets with an L in the center? Those are the limit buy orders I mentioned.",
"translations": [
{
"language": "IT",
"text": "Vedi quei cerchi verdi con dentro la \"L\"? Sono i Limit Buy Order di cui parlavo.",
"updated": 1618061409837
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Notice how an order is placed every minute and is canceled before a new order is placed. Do you recognize the symbol for the order cancellation? It's the smaller, darker bullet with a white horizontal stripe in the middle!"
"text": "Notice how an order is placed every minute and is canceled before a new order is placed. Do you recognize the symbol for the order cancellation? It's the smaller, darker bullet with a white horizontal stripe in the middle!",
"translations": [
{
"language": "IT",
"text": "Nota come viene inserito un ordine al minuto, e come questo viene cancellato prima di inserirne uno nuovo: quest'ultimo evento è riconoscibile dal cerchio scuro più piccolo con una striscia orizziontale che lo attraversa!",
"updated": 1618061508009
}
]
},
{
"style": "Callout",
"text": "Notice the knife falling at 00:21 AM! The price fell well below the rate of the limit order, therefore, the order was filled! That is what the bigger&mdash;filled&mdash;green bullet indicates!"
"text": "Notice the knife falling at 00:21 AM! The price fell well below the rate of the limit order, therefore, the order was filled! That is what the bigger&mdash;filled&mdash;green bullet indicates!",
"translations": [
{
"language": "IT",
"text": "Nota il \"falling knife\" delle 00:21! Il prezzo scende al di sotto di quello del limit order, che quindi viene evaso. Ciò è indicato dal cerchio più grande riempito di colore verde!",
"updated": 1618061604262
}
]
},
{
"style": "Text",
"text": "So. . . what happens afterwards?",
"updated": 1610536393495
"updated": 1610536393495,
"translations": [
{
"language": "IT",
"text": "Quindi...dopo che succede?",
"updated": 1618061624143
}
]
}
]
}
@@ -7,21 +7,49 @@
"project": "Superalgos",
"name": "bullet-limit-sell-order"
},
"text": "I'm sure you noted there are no more limit buy orders after the order got filled. Instead, sell orders start popping up!"
"text": "I'm sure you noted there are no more limit buy orders after the order got filled. Instead, sell orders start popping up!",
"translations": [
{
"language": "IT",
"text": "Sicuramente hai notato che non ci sono più limit buy orders: al loro posto, cominciano ad apparire i sell orders!",
"updated": 1618061675585
}
]
},
"paragraphs": [
{
"style": "Callout",
"text": "Notice how the first Limit Sell Order is placed at 00:22 AM, the minute after the buy order filled!"
"text": "Notice how the first Limit Sell Order is placed at 00:22 AM, the minute after the buy order filled!",
"translations": [
{
"language": "IT",
"text": "Nota come il Limit Sell Order è inserito alle 00:22, un minuto dopo che il buy order è stato evaso.",
"updated": 1618061709740
}
]
},
{
"style": "Text",
"text": "It's the same minute Superalgos would have gotten notice from the exchange that the order got filled. The Trading Bot connects with the exchange and goes through two distinct cycles. ",
"updated": 1616428810807
"updated": 1616428810807,
"translations": [
{
"language": "IT",
"text": "È lo stesso minuto in cui Superalgos viene notificato dall'exchange che l'ordine è stato evaso. Il Trading Bot si connette con l'exchange e esegue due cicli distinti di operazioni.",
"updated": 1618061767833
}
]
},
{
"style": "Success",
"text": "In the first Cycle, it finds out the status of existing orders. In the second, it gives new instructions."
"text": "In the first Cycle, it finds out the status of existing orders. In the second, it gives new instructions.",
"translations": [
{
"language": "IT",
"text": "Nel primo Cycle, controlla lo stato degli ordini esistenti. Nel secondo, dà nuove istruzioni.",
"updated": 1618061798692
}
]
}
]
}
@@ -8,20 +8,48 @@
"name": "layer-resistance"
},
"text": "The logic behind the placing of buy orders is influenced by the Resistances and Supports indicator bot from the Masters Data Mine you ran earlier.",
"updated": 1610641051577
"updated": 1610641051577,
"translations": [
{
"language": "IT",
"text": "L'inserimento dei buy orders è influenzato dai supporti e resistenze dell'Indicator Bot della Masters Data Mine che abbiamo eseguito prima.",
"updated": 1618061894381
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "I took the liberty to turn the Supports layer on to show you this beauty... I hope you don't mind!"
"text": "I took the liberty to turn the Supports layer on to show you this beauty... I hope you don't mind!",
"translations": [
{
"language": "IT",
"text": "Mi sono preso la libertà di attivare il layer dei Supporti per mostrarti questa bellezza. Spero non ti dispiaccia!",
"updated": 1618061926335
}
]
},
{
"style": "Callout",
"text": "The indicator identifies levels (price ranges) on which price is rejected, and keeps a counter of how many rejections occur until the level is breached."
"text": "The indicator identifies levels (price ranges) on which price is rejected, and keeps a counter of how many rejections occur until the level is breached.",
"translations": [
{
"language": "IT",
"text": "L'indicatore identifica livelli (range di prezzo) oltre i quali il prezzo fatica a salire, e tiene conto di quante volte è respinto da essi prima di romperli.",
"updated": 1618062124164
}
]
},
{
"style": "Text",
"text": "The way levels are represented on-screen varies with the number of rejections the level has witnessed, giving us a visual clue of how strong each support level may be. Once a level is breached, it disappears."
"text": "The way levels are represented on-screen varies with the number of rejections the level has witnessed, giving us a visual clue of how strong each support level may be. Once a level is breached, it disappears.",
"translations": [
{
"language": "IT",
"text": "Il modo in cui i livelli sono disegnati varia a seconda del numero di \"rimbalzi\" del prezzo su quel livello, dandoci un'idea visiva di quanto sia forte il supporto. Una volta che viene rotto, sparisce.",
"updated": 1618062095822
}
]
}
]
}
@@ -7,7 +7,14 @@
"project": "Superalgos",
"name": "layer-resistance"
},
"text": "Check the table below and see if you can interpret the support levels you see on the charts."
"text": "Check the table below and see if you can interpret the support levels you see on the charts.",
"translations": [
{
"language": "IT",
"text": "Guarda questa tabella per interpretare i livelli di supporto che vedi sul grafico.",
"updated": 1618062212883
}
]
},
"paragraphs": [
{
@@ -16,7 +23,14 @@
},
{
"style": "Text",
"text": "<br/>For a new support level with one rejection, the dotted line marks the exact level on which price bounced. For further rejections, the blocks mark the rate ranges on which subsequent rejections are counted."
"text": "<br/>For a new support level with one rejection, the dotted line marks the exact level on which price bounced. For further rejections, the blocks mark the rate ranges on which subsequent rejections are counted.",
"translations": [
{
"language": "IT",
"text": "<br>Per un nuovo livello di supporto appena creato, la linea tratteggita segna esattamente dove il prezzo ha rimbalzato. Per ogni rimbalzo futuro, il blocco cambia colore.",
"updated": 1618062387108
}
]
}
]
}
@@ -7,17 +7,38 @@
"project": "Superalgos",
"name": "layer-resistance"
},
"text": "Why do levels jump up and down? There's something I haven't told you yet, 'cos I'm afraid it may blow your mind!"
"text": "Why do levels jump up and down? There's something I haven't told you yet, 'cos I'm afraid it may blow your mind!",
"translations": [
{
"language": "IT",
"text": "Perchè i livelli saltano su e giù? C'è qualcosa che ancora non ti ho detto, e vedrai che ti farà impazzire!",
"updated": 1618064409000
}
]
},
"paragraphs": [
{
"style": "Callout",
"text": "The bot keeps track of all support levels alive since the start of the dataset, but only shows you the five levels closest to the current price."
"text": "The bot keeps track of all support levels alive since the start of the dataset, but only shows you the five levels closest to the current price.",
"translations": [
{
"language": "IT",
"text": "Il bot tiene traccia di tutti i livelli di supporto esistenti dall'inizio del dataset, ma ti mostra solo i cinque livelli più vicini al prezzo corrente.",
"updated": 1618062479544
}
]
},
{
"style": "Text",
"text": "Keeping track of information for the whole span of the dataset—which may count years—is the extraordinary value of data mining, and the kind of things you wouldn't be able to calculate with a function, on the fly. The Plotter associated with the Indicator Bot dynamically shows the five levels of support closest to the price because those are the relevant levels for the context, and it's how the plotter is built!",
"updated": 1616429006453
"updated": 1616429006453,
"translations": [
{
"language": "IT",
"text": "Tenere traccia dei dati per tutto il periodo temporale definito dal dataset (che può essere di anni) è il grande potere del data mining, e il tipo di informazioni che non puoi ricavare facilmente. Il Plotter associato all'Indicator Bot mostra dinamicamente i cinque livelli più vicini al prezzo attuale perchè sono i più rilevanti, ed è così che il Plotter è stato configurato!",
"updated": 1618064485684
}
]
}
]
}
@@ -7,20 +7,48 @@
"project": "Superalgos",
"name": "layer-resistance"
},
"text": "Now that you know how the indicator works, can you find the relationship between buy orders and support levels?"
"text": "Now that you know how the indicator works, can you find the relationship between buy orders and support levels?",
"translations": [
{
"language": "IT",
"text": "Ora che sai come funzionano gli indicatori, puoi trovare la relazione tra buy orders e livelli di supporto?",
"updated": 1618064528654
}
]
},
"paragraphs": [
{
"style": "Callout",
"text": "Take some time to explore the period of time tested looking for clues on how support levels determine the rate of the Limit Buy Order!"
"text": "Take some time to explore the period of time tested looking for clues on how support levels determine the rate of the Limit Buy Order!",
"translations": [
{
"language": "IT",
"text": "Prenditi un'attimo per esplorare il periodo di tempo testato e cercare indizi su come i livelli di supporto determinino l'inserimento del Limit Buy Order!",
"updated": 1618064580106
}
]
},
{
"style": "Text",
"text": "It's fun noticing how new levels form when price changes direction, and how an established level changes color when price bounces-off it."
"text": "It's fun noticing how new levels form when price changes direction, and how an established level changes color when price bounces-off it.",
"translations": [
{
"language": "IT",
"text": "È divertente osservare come i nuovi livelli si formano quando il prezzo cambia direzione, e come un livello cambia colore quando respinge il prezzo.",
"updated": 1618064645034
}
]
},
{
"style": "Success",
"text": "But the trick lies in counting levels above the order!"
"text": "But the trick lies in counting levels above the order!",
"translations": [
{
"language": "IT",
"text": "Il trucco sta nel contare i livelli sopra l'ordine!",
"updated": 1618064660104
}
]
}
]
}
@@ -7,16 +7,37 @@
"project": "Superalgos",
"name": "layer-resistance"
},
"text": "Got it? The Trading Bot places the Limit Buy Order at the fourth support level! What's the logic behind this?"
"text": "Got it? The Trading Bot places the Limit Buy Order at the fourth support level! What's the logic behind this?",
"translations": [
{
"language": "IT",
"text": "Hai capito? Il Trading Bot piazza i Limit Buy Order al quarto livello di supporto! Qual'è la logica di questa scelta?",
"updated": 1618064697343
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "It's sort of arbitrary, but the strategy defines a falling knife as the price action capable of breaching at least three support levels and getting to the fourth during a single minute. Statistically, such events—in this time frame—produce more bounces than continuations. They may be caused by large market orders that temporarily increase the bid/ask spread in the order book."
"text": "It's sort of arbitrary, but the strategy defines a falling knife as the price action capable of breaching at least three support levels and getting to the fourth during a single minute. Statistically, such events—in this time frame—produce more bounces than continuations. They may be caused by large market orders that temporarily increase the bid/ask spread in the order book.",
"translations": [
{
"language": "IT",
"text": "È una scelta più o meno arbitraria, ma la strategia definisce come \"falling knife\" la price action che riesce a rompere almeno tre livelli di supporto e raggiungere il quarto nel giro di un singolo minuto. Statisticamente, questi eventi (su questo time frame) producono più rimbalzi che proseguimenti. Possono essere causati da market orders di grandi dimensioni che aumentano temporaneamente il bid/ask spread nell'order book.",
"updated": 1618064825884
}
]
},
{
"style": "Callout",
"text": "Take a minute to verify that buy orders are placed at the fifth support level!"
"text": "Take a minute to verify that buy orders are placed at the fifth support level!",
"translations": [
{
"language": "IT",
"text": "Prenditi un attimo per verificare che i buy orders siano effettivamente piazzati al quinto supporto!",
"updated": 1618064944102
}
]
}
]
}
@@ -7,16 +7,37 @@
"project": "Superalgos",
"name": "execution-algorithm"
},
"text": "Sorry for dragging you away from the charts, but I wanted to introduce you to someone: the guy on the right is the one placing the buy orders!"
"text": "Sorry for dragging you away from the charts, but I wanted to introduce you to someone: the guy on the right is the one placing the buy orders!",
"translations": [
{
"language": "IT",
"text": "Scusa se ti ho trascinato via dai grafici, ma volevo presentarti a qualcuno: il tipo qui a destra è quello che piazza tutti i buy order!",
"updated": 1618064981900
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "We are inside the Lightning Strike Trading System, within the definitions of the Open Stage. In this stage, the Execution Algorithm takes over after the decision to take a position has already been made on the Trigger Stage. I know you still don't know what a Situation or a Condition are, but I'd still like you to do something..."
"text": "We are inside the Lightning Strike Trading System, within the definitions of the Open Stage. In this stage, the Execution Algorithm takes over after the decision to take a position has already been made on the Trigger Stage. I know you still don't know what a Situation or a Condition are, but I'd still like you to do something...",
"translations": [
{
"language": "IT",
"text": "Siamo all'interno del Lightning Strike Trading System, dentro la definizione dell'Open Stage. In questo stage, l'Execution Algorithm prende il sopravvento dopo che la decisione di aprire una posizione è già stata presa nel Trigger Stage. So che non sai ancora cosa siano una Situation o una Condition, ma vorrei comunque facessi una cosa...",
"updated": 1618065153377
}
]
},
{
"style": "Callout",
"text": "Take a few minutes to explore the nodes below the execution algorithm, check the formulas and conditions, and see what you can make of them!"
"text": "Take a few minutes to explore the nodes below the execution algorithm, check the formulas and conditions, and see what you can make of them!",
"translations": [
{
"language": "IT",
"text": "Esplora i nodi sotto l'Execution Algorithm, controlla le formule e condizioni, e vedi cosa puoi ricavarne!",
"updated": 1618065182365
}
]
}
]
}
@@ -7,21 +7,49 @@
"project": "Superalgos",
"name": "formula"
},
"text": "What you just went through is the definition of the Limit Buy Order that is placed and cancelled every minute until it gets filled."
"text": "What you just went through is the definition of the Limit Buy Order that is placed and cancelled every minute until it gets filled.",
"translations": [
{
"language": "IT",
"text": "Quella che hai appena guardato è la definizione del Limit Buy Order che viene piazzato e cancellato ogni minuto finchè non viene evaso.",
"updated": 1618065276195
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "This is the node that determines the rate of the limit order. Remember what we discussed earlier about placing the order at the rate of the fourth support level?",
"updated": 1616429339703
"updated": 1616429339703,
"translations": [
{
"language": "IT",
"text": "Questo è il nodo che determina il prezzo del limit order. Ricordi quando abbiamo parlato di come l'ordine viene piazzato al quarto livello di supporto?",
"updated": 1618065331055
}
]
},
{
"style": "Callout",
"text": "Go to the Formula attached to the Order Rate node and click Edit on the menu."
"text": "Go to the Formula attached to the Order Rate node and click Edit on the menu.",
"translations": [
{
"language": "IT",
"text": "Vai alla Formula collegata al nodo Order Rate e clicca Edit sul menu.",
"updated": 1618065364382
}
]
},
{
"style": "Text",
"text": "Well... that is how it's done! As you can see, the syntax is virtually self-explanatory! It involves defining the time frame, the indicator, and the indicator property involved."
"text": "Well... that is how it's done! As you can see, the syntax is virtually self-explanatory! It involves defining the time frame, the indicator, and the indicator property involved.",
"translations": [
{
"language": "IT",
"text": "Ecco, è così che funziona! Come vedi, la sintassi è intuitiva. Comprende la definizione del time frame, degli indicatori interessati e delle loro proprietà.",
"updated": 1618065469493
}
]
}
]
}
@@ -7,20 +7,48 @@
"project": "Superalgos",
"name": "execution-algorithm"
},
"text": "We are now in the Close Stage. I thought it would be interesting to tell you more about execution algorithms, with another example."
"text": "We are now in the Close Stage. I thought it would be interesting to tell you more about execution algorithms, with another example.",
"translations": [
{
"language": "IT",
"text": "Ora siamo nel Close Stage. Pensavo sarebbe stato interessante dirti di più sugli Execution Algorithm con un altro esempio.",
"updated": 1618065500220
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "An Execution Algorithm may handle multiple orders, of all types. In this case, multiple limit sell orders are defined."
"text": "An Execution Algorithm may handle multiple orders, of all types. In this case, multiple limit sell orders are defined.",
"translations": [
{
"language": "IT",
"text": "Un Execution Algorithm può gestire più ordini di ogni tipo. In questo caso, vari limit sell orders sono definiti.",
"updated": 1618065545085
}
]
},
{
"style": "Callout",
"text": "Select Configure on the menu of the algorithm and reflect on the implications of this definition!"
"text": "Select Configure on the menu of the algorithm and reflect on the implications of this definition!",
"translations": [
{
"language": "IT",
"text": "Seleziona Configure dal menu dell'algoritmo e rifletti sulle implicazioni di questa definizione!",
"updated": 1618065569642
}
]
},
{
"style": "Text",
"text": "Both the open stage, where you define how to take a position, and the close stage, where you define how to exit, may feature multiple execution algorithms, each of them handling a certain amount of capital."
"text": "Both the open stage, where you define how to take a position, and the close stage, where you define how to exit, may feature multiple execution algorithms, each of them handling a certain amount of capital.",
"translations": [
{
"language": "IT",
"text": "Sia l'Open Stage, dove definisci come aprire una posizione, che il Close Stage, dove invece definisci come chiuderla, possono contenere diversi Execution Algorithm, ognuno dei quali gestisce un certo capitale.",
"updated": 1618065707647
}
]
}
]
}
Loaded 100 of 140 files, more files were not shown because too many files have changed in this diff. Show more