This commit is contained in:
Julian Molina committed 2021-02-11 11:31:11 +01:00
commit 35ff70cd04
14 files changed
+201 -87

No files matched your search

+3 -3
View File
@@ -56,8 +56,8 @@
onresize="onResize()">
<div id="contributors" class="credits">
<p id="credits-page-status-paragraph" class="credits-yellow">The UI is loading...</p>
<p>Superalgos is and will always be <span class="credits-red">free</span> and <span class="credits-red">open-source</span>, and is
<span class="credits-red">constantly improving</span> thanks to the involvement of contributors:</p>
<p>Superalgos is <span class="credits-red">forever free</span> and <span class="credits-red">open-source</span>, and it's
<span class="credits-red">relentlessly improving</span> thanks to the involvement of contributors:</p>
<p>Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis,
Jeff Braun, rico4dev, 9808us, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Norman,
Viktoria B., Guillermo V., Daniel J.,
@@ -65,7 +65,7 @@
Diego M., CarnivalBen,
Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Alejandro P., Mateo H., Lan
T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.</p>
<p>Thanks for giving a <span class="credits-red">star</span> to the project's <span class="credits-red">repo at GitHub.com</span>. This help other devs to find it.</p>
<p>Thanks for giving a <span class="credits-red">star</span> to the Superalgos <span class="credits-red">repo at GitHub.com</span>... It helps other devs find the project!</p>
</div>
<div id="masterApp"></div>
<div id="canvasApp"></div>
BIN
View File
Binary file not shown.
@@ -1 +1 @@
{"type":"Trading Mine","name":"Masters","config":"{ \n\"codeName\": \"Masters\"\n}","project":"Superalgos","tradingBots":[{"type":"Trading Bot","name":"Low Frequency","config":"{\n\"codeName\": \"Low-Frequency\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Trading","config":"{\n \"codeName\": \"Trading\",\n \"sessionRunWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Low-Frequency-Trading-Process\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Engine","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Episode","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Episode Counters","project":"Superalgos","id":"ec8d74ba-a4ad-417a-b479-6bae95b8a1fe","savedPayload":{"position":{"x":24910.97457254189,"y":18457.46644293786},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3ed03a02-381d-43fe-9faa-761728c53bd8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Counters","project":"Superalgos","id":"22b0af33-8c2f-4194-839b-affd18f298d5","savedPayload":{"position":{"x":24834.601232363748,"y":18490.07023931273},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15f5b150-f1cf-403c-8cb9-2c7c4e1db8e8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Statistics","project":"Superalgos","id":"23ab91ae-2e78-4993-bb69-855f69cef1ce","savedPayload":{"position":{"x":24753.53736157276,"y":18508.085329665024},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fc9dc0f7-35e0-4548-bb91-f920825d694f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Statistics","project":"Superalgos","id":"d0a4515a-279d-4c27-8de2-168108861242","savedPayload":{"position":{"x":24670.543493063306,"y":18510.89823169951},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"91953362-8751-4440-a898-21245cd47c15"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Candle","project":"Superalgos","id":"7fc80977-5b37-413e-8107-0a89a16e08b0","savedPayload":{"position":{"x":24588.445883487308,"y":18498.413155411115},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"17fb41f5-61b5-4433-9a10-950ff8216a7e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Candle","project":"Superalgos","id":"a6888750-1043-420c-9253-633e1399c5e4","savedPayload":{"position":{"x":24510.040268473647,"y":18471.05526509864},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"bbc9467d-28bf-432b-9e49-582d1bcabfb9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Balances","project":"Superalgos","id":"0ad114df-f076-4a86-8c62-4c4a146da73c","savedPayload":{"position":{"x":24437.996657204443,"y":18429.756200904503},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"acddff59-b51b-4b45-b58f-71d4077755ee"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Balances","project":"Superalgos","id":"04b51302-957d-4365-ad55-9f89d60e261c","savedPayload":{"position":{"x":24374.76840845468,"y":18375.922352927064},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFroLine truncated
{"type":"Trading Mine","name":"Masters","config":"{ \n\"codeName\": \"Masters\"\n}","project":"Superalgos","tradingBots":[{"type":"Trading Bot","name":"Low Frequency","config":"{\n\"codeName\": \"Low-Frequency\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Trading","config":"{\n \"codeName\": \"Trading\",\n \"sessionRunWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Low-Frequency-Trading-Process\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Engine","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Episode","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Episode Counters","project":"Superalgos","id":"ec8d74ba-a4ad-417a-b479-6bae95b8a1fe","savedPayload":{"position":{"x":24910.97457254189,"y":18457.46644293786},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3ed03a02-381d-43fe-9faa-761728c53bd8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Counters","project":"Superalgos","id":"22b0af33-8c2f-4194-839b-affd18f298d5","savedPayload":{"position":{"x":24834.601232363748,"y":18490.07023931273},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15f5b150-f1cf-403c-8cb9-2c7c4e1db8e8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Statistics","project":"Superalgos","id":"23ab91ae-2e78-4993-bb69-855f69cef1ce","savedPayload":{"position":{"x":24753.53736157276,"y":18508.085329665024},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fc9dc0f7-35e0-4548-bb91-f920825d694f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Statistics","project":"Superalgos","id":"d0a4515a-279d-4c27-8de2-168108861242","savedPayload":{"position":{"x":24670.543493063306,"y":18510.89823169951},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"91953362-8751-4440-a898-21245cd47c15"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Candle","project":"Superalgos","id":"7fc80977-5b37-413e-8107-0a89a16e08b0","savedPayload":{"position":{"x":24588.445883487308,"y":18498.413155411115},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"17fb41f5-61b5-4433-9a10-950ff8216a7e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Candle","project":"Superalgos","id":"a6888750-1043-420c-9253-633e1399c5e4","savedPayload":{"position":{"x":24510.040268473647,"y":18471.05526509864},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"bbc9467d-28bf-432b-9e49-582d1bcabfb9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Balances","project":"Superalgos","id":"0ad114df-f076-4a86-8c62-4c4a146da73c","savedPayload":{"position":{"x":24437.996657204443,"y":18429.756200904503},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"acddff59-b51b-4b45-b58f-71d4077755ee"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Balances","project":"Superalgos","id":"04b51302-957d-4365-ad55-9f89d60e261c","savedPayload":{"position":{"x":24374.76840845468,"y":18375.922352927064},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFroLine truncated
@@ -1 +1 @@
{"type":"Trading System","name":"Lightning Strike","config":"{ \n\"codeName\": \"Lightning Strike\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"My Trading Strategy","project":"Superalgos","triggerStage":{"type":"Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Inmediate Trigger On","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"e2ea7ded-2be1-43a3-a7fa-de3d9b8eeec4","savedPayload":{"position":{"x":30914.345537114667,"y":38604.01436324851},"targetPosition":{"x":31359.096259318965,"y":38830.60964671243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e693623c-e11f-49e3-99da-1897c7a47563","savedPayload":{"position":{"x":31359.096259318965,"y":38830.60964671243},"targetPosition":{"x":31803.948096117412,"y":39057.27709300647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9135663f-deeb-4b3f-8855-91750810a406","savedPayload":{"position":{"x":31803.948096117412,"y":39057.27709300647},"targetPosition":{"x":32249.606420886405,"y":39284.23888962723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"05f2f6b7-15ab-4386-a299-91a949de634e","savedPayload":{"position":{"x":32249.606420886405,"y":39284.23888962723},"targetPosition":{"x":32695.222935590078,"y":39511.15601095159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"Never Trigger Off","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Above MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"false","project":"Superalgos","id":"0eb59e3b-ccc8-4eab-a1f2-a7c8dea28949","savedPayload":{"position":{"x":32077.836612408217,"y":37610.39742636277},"targetPosition":{"x":32232.059454816794,"y":38085.06041310742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31ab47dd-fe2d-47ac-9a77-08ec8beee068","savedPayload":{"position":{"x":32232.059454816794,"y":38085.06041310742},"targetPosition":{"x":32386.31006690743,"y":38559.9136542021},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fa93a965-e836-42b3-9784-79acda1468dd","savedPayload":{"position":{"x":32386.31006690743,"y":38559.9136542021},"targetPosition":{"x":32540.740280232243,"y":39035.59720645897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8a46ebed-4ed4-4b70-882b-416ffa1b37f6","savedPayload":{"position":{"x":32540.740280232243,"y":39035.59720645897},"targetPosition":{"x":32695.222935590078,"y":39511.15601095159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Inmediate Take Position","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"90dda64b-17fd-469c-8066-3855596795ab","savedPayload":{"position":{"x":33610.303575265214,"y":37702.976973794255},"targetPosition":{"x":33383.88254713001,"y":38147.76160391372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4054a522-7863-4ac2-9eab-26db2a6f037f","savedPayload":{"position":{"x":33383.88254713001,"y":38147.76160391372},"targetPosition":{"x":33148.83631252263,"y":38619.95922965271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0b8d71ab-6430-4e3f-840a-162745ab8d22","savedPayload":{"position":{"x":33148.83631252263,"y":38619.95922965271},"targetPosition":{"x":32922.00489673196,"y":39065.5515863614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":falsLine truncated
{"type":"Trading System","name":"Lightning Strike","config":"{ \n\"codeName\": \"Lightning Strike\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"My Trading Strategy","project":"Superalgos","triggerStage":{"type":"Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Inmediate Trigger On","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"e2ea7ded-2be1-43a3-a7fa-de3d9b8eeec4","savedPayload":{"position":{"x":29614.345537114667,"y":29686.264363248512},"targetPosition":{"x":30059.096259318965,"y":29912.85964671243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e693623c-e11f-49e3-99da-1897c7a47563","savedPayload":{"position":{"x":30059.096259318965,"y":29912.85964671243},"targetPosition":{"x":30503.948096117412,"y":30139.527093006473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9135663f-deeb-4b3f-8855-91750810a406","savedPayload":{"position":{"x":30503.948096117412,"y":30139.527093006473},"targetPosition":{"x":30949.606420886405,"y":30366.48888962723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"05f2f6b7-15ab-4386-a299-91a949de634e","savedPayload":{"position":{"x":30949.606420886405,"y":30366.48888962723},"targetPosition":{"x":31395.222935590078,"y":30593.406010951592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"Never Trigger Off","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Above MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"false","project":"Superalgos","id":"0eb59e3b-ccc8-4eab-a1f2-a7c8dea28949","savedPayload":{"position":{"x":30777.836612408217,"y":28692.647426362768},"targetPosition":{"x":30932.059454816794,"y":29167.31041310742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31ab47dd-fe2d-47ac-9a77-08ec8beee068","savedPayload":{"position":{"x":30932.059454816794,"y":29167.31041310742},"targetPosition":{"x":31086.31006690743,"y":29642.1636542021},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fa93a965-e836-42b3-9784-79acda1468dd","savedPayload":{"position":{"x":31086.31006690743,"y":29642.1636542021},"targetPosition":{"x":31240.740280232243,"y":30117.847206458973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8a46ebed-4ed4-4b70-882b-416ffa1b37f6","savedPayload":{"position":{"x":31240.740280232243,"y":30117.847206458973},"targetPosition":{"x":31395.222935590078,"y":30593.406010951592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Inmediate Take Position","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"90dda64b-17fd-469c-8066-3855596795ab","savedPayload":{"position":{"x":32310.303575265214,"y":28785.226973794255},"targetPosition":{"x":32083.882547130008,"y":29230.01160391372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4054a522-7863-4ac2-9eab-26db2a6f037f","savedPayload":{"position":{"x":32083.882547130008,"y":29230.01160391372},"targetPosition":{"x":31848.83631252263,"y":29702.20922965271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0b8d71ab-6430-4e3f-840a-162745ab8d22","savedPayload":{"position":{"x":31848.83631252263,"y":29702.20922965271},"targetPosition":{"x":31622.00489673196,"y":30147.8015863614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollaLine truncated
@@ -3,8 +3,8 @@
"pageNumber": "1",
"type": "How to Troubleshoot an Issue",
"definition": {
"text": "Following these logical steps will help you better understand the system and find solutions to most of the issues you may run into.",
"updated": 1611509381460
"text": "This Troubleshooting Guide teaches you the logical steps that will help you better understand the system and find solutions to most of the issues you may run into.",
"updated": 1612874252158
},
"paragraphs": [
{
@@ -22,8 +22,13 @@
},
{
"style": "Important",
"text": "Thoroughly following this troubleshooting guide—step by step—is a requirement for reporting an issue. We can not afford to investigate issues that you may solve on your own, or without the appropriate information. Doing so would rob the project of valuable resources.",
"updated": 1611509548445
"text": "Thoroughly following this troubleshooting guide—step by step—is a requirement for reporting an issue or asking for help in the Support Group. We can not afford to investigate issues that you may solve on your own, or without the appropriate information. Doing so would rob the project of valuable resources.",
"updated": 1612875019106
},
{
"style": "Success",
"text": "Before you even start troubleshooting, you should do all the tutorials available. This is the single best piece of advice you may get, as tutorials will teach you all the basic operations and will clarify most of the questions that derive from a lack of understanding of how the system works. Please, go to the First Steps Tutorials book and do some learning! Please do not ask for help before you do all tutorials!",
"updated": 1612874358930
},
{
"style": "Title",
@@ -35,33 +40,47 @@
},
{
"style": "List",
"text": "If you are following the Download and Set Up guide or the Welcome tutorial, read caferully and make sure you haven’t skipped any steps."
"text": "If you are following the Welcome tutorial, read carefully and make sure you haven’t skipped any steps. Go back a few steps and try again.",
"updated": 1612876297808
},
{
"style": "List",
"text": "If you are already using the system, take some time to search the documentation and read the pages related to the matters you are working with. Use the search box on the top-right corner to search for the specific matter (i.e. backtesting, data mining, etc.)",
"updated": 1611509580552
"text": "If you are already using the system, take some time to search the Docs and read the topics related to the matters you are working with. Use the search box to search for the specific matter (backtesting, data mining, etc.)",
"updated": 1612875081868
},
{
"style": "List",
"text": "If you are having trouble with a specific node on the design space, open the menu and click the button. A new tab will open in your browser with the description of the corresponding node in the corresponding hierarchy directory. Read about the node, it’s parent node, and its offspring."
"text": "If you are having trouble with a specific node on the Design Space, open the menu and click the help button. The Docs will open with a description of what the node is and how it works. Read about the node, its parent node, and its offspring.",
"updated": 1612876337693
},
{
"style": "List",
"text": "If you are having trouble operating the charts, make sure you revisit the Welcome tutorial and the interface section of the Charting Space."
"text": "If you are having trouble operating the charts, make sure you revisit the Welcome tutorial and the pages on Time Machines and Timeline Charts, and Scales.",
"updated": 1612874724546
},
{
"style": "List",
"text": "If you are not sure what you should search for, go to the User Manual book and scan the topics covered there. If you are serious about learning Superalgos, reading the whole User Manual will put you at the top of the food chain.",
"updated": 1612874813098
},
{
"style": "Success",
"text": "There is no substitute for knowledge. The more you understand, the less time and effort you will waste with issues related to a lack of understanding, and the more focused your questions will be when asking for help. You may be inclined to take a shortcut and ask the community before doing your research. This may save you some time occasionally and may be appropriate in cases in which you need a little guidance or need to clear a quick doubt, particularly if you are a beginner and are still following the Getting Started Guide. However, the problem with lack of understanding is that it is a persistent condition until you deal with the root cause. The way to deal with the root cause is taking the time to read the documentation. Otherwise, you will find yourself dealing with the same constraints over and over again. Acquiring knowledge while being mindful of the Team’s time is the first step towards becoming a valuable member of the community.",
"updated": 1611509589990
"text": "There is no substitute for knowledge. The more you understand, the less time and effort you will waste with issues related to a lack of understanding, and the more focused your questions will be when asking for help. You may be inclined to take a shortcut and ask the community before doing your research. This may save you some time occasionally and may be appropriate in cases in which you need a little guidance or need to clear a quick doubt. However, the problem with lack of understanding is that it is a persistent condition until you deal with the root cause. The way to deal with the root cause is to take the time to do all the First Steps Tutorials and read the User Manual. Otherwise, you will find yourself dealing with the same constraints over and over again. Acquiring knowledge while being mindful of the Team’s time is the first step towards becoming a valuable member of the community.",
"updated": 1612876358894
},
{
"style": "Subtitle",
"text": "2. Scan the troubleshooting section"
"text": "2. Scan the Troubleshooting topic",
"updated": 1612875503760
},
{
"style": "Subtitle",
"text": ""
},
{
"style": "Text",
"text": "Chances are someone else has experienced a similar issue as you may be experiencing now. We do our best to compile common issues into specific troubleshooting pages, so make sure you take a look there before moving on."
"text": "Chances are someone else has experienced a similar issue as you may be experiencing now. We do our best to compile common issues into specific troubleshooting pages, so make sure you take a look there before moving on. This page is the first on the Troubleshooting topic. Find the rest in the TOC at the bottom of this page.",
"updated": 1612876381614
},
{
"style": "Subtitle",
@@ -69,11 +88,13 @@
},
{
"style": "Text",
"text": "Open your operating system’s Task Manager application and verify the CPU load while you reproduce the issue you are experiencing. If your CPU is running at 100% for more than 30 to 60 seconds, all sorts of problems may arise, as your hardware is not able to cope with the system requirements."
"text": "Open your operating system’s task manager application and verify the CPU load while you reproduce the issue you are experiencing. If your CPU is running at 100% for more than 30 to 60 seconds, all sorts of problems may arise, as your hardware may not able to cope with what you may be trying to do.",
"updated": 1612875430945
},
{
"style": "Text",
"text": "If this is the case, try closing any other applications that may be demanding CPU time, and follow the guidelines proposed in the My System Gets Slow page to lower the demands on the processor."
"text": "If this is the case, try closing other applications that may be demanding CPU time, and follow the guidelines proposed in the Perception Issues - My System Gets Slow page to lower the demands on the processor.",
"updated": 1612875476873
},
{
"style": "Text",
@@ -89,16 +110,18 @@
},
{
"style": "Note",
"text": "Making sure means installing the latest version, right now.",
"updated": 1611509626109
"text": "Making sure means installing the latest version, right now. You may run the App Update Command.",
"updated": 1612875559806
},
{
"style": "Subtitle",
"text": "5. Does the issue persist when using one of the official workspaces?"
"text": "5. Does the issue persist when using one of the plugin workspaces?",
"updated": 1612875632190
},
{
"style": "Text",
"text": "If the issue may not be reproduced using one of the official workspaces, that likely means that modifications you may have introduced may be playing a role in the issue. In and of itself, this is a crucial piece of information that helps start the process of isolating the issue."
"text": "If the issue may not be reproduced using one of the plugin workspaces, that likely means that modifications you may have introduced may be playing a role in the issue. In and of itself, this is a crucial piece of information that helps start the process of isolating the issue.",
"updated": 1612875627341
},
{
"style": "Text",
@@ -106,7 +129,8 @@
},
{
"style": "Text",
"text": "Start over and reproduce the modifications on the official workspace, one at a time, and make a quick test after each mod is applied. This process done right should lead you to the exact node, structure of nodes, configuration, parameter, or—in general—the modification that may be involved in the cause of the issue."
"text": "Start over and reproduce the modifications on the plugin workspace, one at a time, and make a quick test after each mod is applied. This process done right should lead you to the exact node, structure of nodes, configuration, parameter, or—in general—the modification that may be involved in the cause of the issue.",
"updated": 1612875667631
},
{
"style": "Note",
@@ -152,15 +176,18 @@
},
{
"style": "Text",
"text": "If your machine shut down unexpectedly or you closed the backend servers running in the console application without first stopping your data mining tasks, chances are some of your data may have been corrupted. If you suspect this may have something to do with your issue, then you should check the integrity of your data."
"text": "If your machine shut down unexpectedly or you closed the backend servers running in the console application without first stopping your data mining tasks, chances are some of your data may have been corrupted. If you suspect this may have something to do with your issue, then you should read Investigating Issues - Check the Integrity of Your Data.",
"updated": 1612875847548
},
{
"style": "Subtitle",
"text": "8. May this be an issue with the frontend application?"
"text": "8. May this be an issue with the GUI?",
"updated": 1612875863222
},
{
"style": "Text",
"text": "If your issue happens within the frontend application, then you should either be getting an on-screen error or an error on your browser console application."
"text": "If your issue happens within the GUI, then you should either be getting an on-screen error or an error on your browser console application.",
"updated": 1612875875780
},
{
"style": "Text",
@@ -173,25 +200,28 @@
},
{
"style": "Important",
"text": "Remember that Chrome is the only supported browser. If you are using any other browser and have frontend issues, we may not be able to reproduce the issue. Do not report an issue with the frontend unless you are using Chrome.",
"updated": 1611509692825
"text": "Remember that Chrome and Safari on Mac are the only supported browsers. If you are using any other browsers and have GUI issues, we may not be able to reproduce them. Do not report an issue with the GUI unless you are using Chrome or Safari.",
"updated": 1612876423477
},
{
"style": "Subtitle",
"text": "9. May this be an issue with the backend application?"
"text": "9. May this be an issue with the Client application?",
"updated": 1612875983271
},
{
"style": "Text",
"text": "If there are issues with the backend application, then errors must be logged at the console where you are running the backend. The same errors are logged in the Log-Files folder and the specific sub-folders corresponding to the processes involved in the matter."
"text": "If there are issues with the Client application, then errors must be logged at the console where you are running the backend. The same errors are logged in the Log-Files folder and the specific sub-folders corresponding to the processes involved in the matter.",
"updated": 1612875992279
},
{
"style": "Text",
"text": " Note: Make sure you check the logs for the specific processes involved in the matter, and save the corresponding log files with these errors so that you may report them later."
"style": "Note",
"text": "Make sure you check the logs for the specific processes involved in the mater, and save the corresponding log files with these errors so that you may report them later.",
"updated": 1612876447343
},
{
"style": "Success",
"text": "If you are a developer, remember that you may easily debug a task to find the root cause of the issue.",
"updated": 1611509706433
"text": "If you are a developer, remember that you may easily debug a task to find the root cause of the issue. Read Debugging a Task.",
"updated": 1612876057032
},
{
"style": "Subtitle",
@@ -206,7 +236,7 @@
"text": "If you have issues with a particular setup, feel free to ask for help from other users in the community, but do not open an issue for the Team to look into."
},
{
"style": "Text",
"style": "Title",
"text": "Has Your Issue Not Been Resolved?"
},
{
@@ -11,6 +11,18 @@
"style": "Note",
"text": "Candle And Cycle",
"updated": 1611919730247
},
{
"style": "Title",
"text": "Context Info"
},
{
"style": "Text",
"text": "The following is the information preserved at the moment this Info Message was generated:"
},
{
"style": "Placeholder",
"text": "contextInfo"
}
]
}
@@ -16,7 +16,7 @@
},
{
"style": "Text",
"text": "Keeping track of information for the whole span of the dataset&mdash;which may count years&mdash;is the true 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."
"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."
}
]
}
@@ -7,12 +7,12 @@
"project": "Superalgos",
"name": "layer-resistance"
},
"text": "Got it? The Trading Bot places the Limit Buy Order at the fifth 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?"
},
"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 four support levels and getting to the fifth during a single minute. Statistically, such events&mdash;in this time frame&mdash;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."
},
{
"style": "Callout",
@@ -214,6 +214,13 @@ exports.newSuperalgosBotModulesTradingSimulation = function (processIndex) {
type: 'TS LF Trading Bot Info - Candle And Cycle',
placeholder: {}
}
contextInfo = {
candleIndex: tradingEngine.current.episode.candle.index.value,
cycle: tradingEngine.current.episode.cycle.value
}
TS.projects.superalgos.utilities.docsFunctions.buildPlaceholder(docs, undefined, undefined, undefined, undefined, undefined, contextInfo)
tradingSystem.addInfo([tradingSystem.id, infoMessage, docs])
await tradingSystemModuleObject.run()
@@ -64,43 +64,42 @@ exports.newSuperalgosBotModulesTradingSystem = function (processIndex) {
tradingSystem.addError = function (errorDataArray) {
/*
This function adds to the array of error info a rate based on the amount of items
already at the errors array. This rate will later help plotting the error at the
This function adds to the array of error info a rate.
This rate will later help plotting the error at the
charts.
*/
let baseRate = tradingEngine.current.episode.candle.close.value
let rate = baseRate - baseRate * ((tradingSystem.errors.length + 1) + 0) / 100
let rate = tradingEngine.current.episode.candle.close.value
errorDataArray.push(rate)
tradingSystem.errors.push(errorDataArray)
}
tradingSystem.addWarning = function (warningDataArray) {
/*
This function adds to the array of warning info a rate based on the amount of items
already at the warning array. This rate will later help plotting the warning at the
This function adds to the array of warning info a rate.
This rate will later help plotting the warning at the
charts.
*/
let baseRate = tradingEngine.current.episode.candle.close.value
let rate = baseRate + baseRate * ((tradingSystem.warnings.length + 1) + 0) / 100
let rate = tradingEngine.current.episode.candle.close.value
warningDataArray.push(rate)
tradingSystem.warnings.push(warningDataArray)
}
tradingSystem.addInfo = function (infoDataArray) {
/*
This function adds to the array of warning info a rate based on the amount of items
already at the warning array. This rate will later help plotting the warning at the
This function adds to the array of warning info a rate.
This rate will later help plotting the warning at the
charts.
*/
let baseRate = tradingEngine.current.episode.candle.close.value
let rate = baseRate + baseRate * ((tradingSystem.infos.length + 1) + 0.5) / 100
let rate = tradingEngine.current.episode.candle.close.value
infoDataArray.push(rate)
tradingSystem.infos.push(infoDataArray)
}
function isItInside(elementWithTimestamp, elementWithBeginEnd) {
/*
The function is to allow in Conditions and Formulas to easily know when an element with timestamp (like the ones of single files) are inside the time range
The function is to allow in Conditions and Formulas to easily
know when an element with timestamp (like the ones of
single files) are inside the time range
of an element with a time range, like a candle.
*/
if (elementWithTimestamp.timestamp >= elementWithBeginEnd.begin && elementWithTimestamp.timestamp <= elementWithBeginEnd.end) {
@@ -252,7 +252,7 @@ function newSuperalgosChartingSpace() {
returnPoint.y = COCKPIT_SPACE_POSITION
}
} else {
if (point.y > COCKPIT_SPACE_POSITION + COCKPIT_SPACE_HEIGHT / 2) {
if (point.y > COCKPIT_SPACE_POSITION ) {
returnPoint.y = COCKPIT_SPACE_POSITION + COCKPIT_SPACE_HEIGHT / 2
}
}
@@ -273,7 +273,7 @@ function newSuperalgosChartingSpace() {
return false
}
if (point.y > COCKPIT_SPACE_POSITION + COCKPIT_SPACE_HEIGHT / 2) {
if (point.y > COCKPIT_SPACE_POSITION) {
return false
}
@@ -151,16 +151,20 @@ function newPlotter() {
function onMouseOver(event) {
let userPosition = UI.projects.superalgos.utilities.dateRateTransformations.getDateFromPointAtBrowserCanvas(event, thisObject.container, coordinateSystem)
userPositionDate = userPosition.valueOf()
let rateRange = 10
if (productDefinition.referenceParent.config.rateRange !== undefined) {
rateRange = productDefinition.referenceParent.config.rateRange
}
let minPositionPoint = {
x: event.x,
y: event.y + 10
y: event.y + rateRange
}
minUserPositionRate = UI.projects.superalgos.utilities.dateRateTransformations.getRateFromPointAtBrowserCanvas(minPositionPoint, thisObject.container, coordinateSystem)
let maxPositionPoint = {
x: event.x,
y: event.y - 10
y: event.y - rateRange
}
maxUserPositionRate = UI.projects.superalgos.utilities.dateRateTransformations.getRateFromPointAtBrowserCanvas(maxPositionPoint, thisObject.container, coordinateSystem)
}
@@ -530,9 +534,26 @@ function newPlotter() {
position determined by rateInArrayIndex
*/
let rateArray = record[ratePropertyName]
let rateInRange = false
for (let i = 0; i < rateArray.length; i++) {
let rateArrayItem = rateArray[i]
/*
Here we will take the rate for this array item and we will apply the offset
rules defined at the Plotter Module Config for this kind of sitiations.
*/
let rate = rateArrayItem[productDefinition.referenceParent.config.rateInArrayAtIndex]
let point = {
x: 0,
y: rate
}
point = coordinateSystem.transformThisPoint(point)
point = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point, container)
point.y =
point.y -
productDefinition.referenceParent.config.rateOffsetBasedOnArrayIndex * i -
productDefinition.referenceParent.config.rateOffset
rate = UI.projects.superalgos.utilities.dateRateTransformations.getRateFromPointAtBrowserCanvas(point, thisObject.container, coordinateSystem)
/*
We will try to find at which record is the mouse pointer close enough.
*/
@@ -541,17 +562,21 @@ function newPlotter() {
We store the index found here so as to enable whoever receives this
record to know which record the user is pointing at.
*/
DEBUG.variable1 = 'i: ' + i
record.rateIndex = i
currentRecordChanged()
rateInRange = true
break
}
}
/*
If the User is not pointing to a rate in particular we are still going
to raise the event but without a rateindex property
*/
record.rateIndex = undefined
currentRecordChanged()
if (rateInRange === false) {
/*
If the User is not pointing to a rate in particular we are still going
to raise the event but without a rateindex property
*/
record.rateIndex = undefined
currentRecordChanged()
}
} else {
/*
Current Record depends that the mouse pointer is within a range close enought to the rate
@@ -787,14 +812,16 @@ function newPlotter() {
y: dataPointObject.y
}
dataPoint = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(dataPoint)
dataPoint = thisObject.fitFunction(dataPoint)
imagePosition.x = dataPoint.x
imagePosition.y = dataPoint.y
imagePosition.x = dataPoint.x - imageSize / 2 + offsetX
imagePosition.y = dataPoint.y - imageSize / 2 - offsetY
imagePosition = thisObject.fitFunction(imagePosition, true)
let imageToDraw = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName('Superalgos', imageName)
if (imageToDraw !== undefined) {
if (imageToDraw.canDrawIcon === true) {
browserCanvasContext.drawImage(imageToDraw, imagePosition.x - imageSize / 2 + offsetX, imagePosition.y - imageSize / 2 - offsetY, imageSize, imageSize)
browserCanvasContext.drawImage(imageToDraw, imagePosition.x, imagePosition.y, imageSize, imageSize)
}
} else {
console.log('Can not plot image named ' + imageName + ' of product ' + productDefinition.name + ' because it does not exist.')
@@ -833,14 +860,15 @@ function newPlotter() {
y: dataPointObject.y
}
dataPoint = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(dataPoint)
dataPoint = thisObject.fitFunction(dataPoint)
textPosition.x = dataPoint.x
textPosition.y = dataPoint.y
textPosition.x = dataPoint.x + offsetX
textPosition.y = dataPoint.y - offsetY
textPosition = thisObject.fitFunction(textPosition)
browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY
browserCanvasContext.fillStyle = 'rgba(' + paletteColor + ', ' + opacity + ')'
browserCanvasContext.fillText(value, textPosition.x + offsetX, textPosition.y - offsetY)
browserCanvasContext.fillText(value, textPosition.x, textPosition.y)
}
}
}
@@ -306,8 +306,6 @@ function newFloatingLayer() {
/* This function makes all the calculations to apply phisycs on all visible floatingObjects in this layer. */
try {
DEBUG.variable1 = 'Invisible Floating Objets: ' + invisibleFloatingObjects.length
DEBUG.variable2 = 'Visible Floating Objets: ' + visibleFloatingObjects.length
if (UI.projects.superalgos.spaces.floatingSpace.settings.physics !== true) {return}
+54 -14
View File
@@ -1,8 +1,8 @@
# Getting Started Guide
# Superalgos Beta 8 - Getting Started Guide
All procedures are the same for Windows, Linux, or Mac OS.
All procedures are the same for Windows, Linux, or Mac OS. Raspberry Pi terminal commands have been included for ease of use.
![Superalgos video capture (16)](https://user-images.githubusercontent.com/9479367/77251218-76d25980-6c4d-11ea-8e47-be7db2e8abdb.gif)
![superalgos-readme](https://user-images.githubusercontent.com/13994516/106380124-844d8980-63b0-11eb-9bd9-4f977b6c183b.gif)
# Pre-Requisites
@@ -18,6 +18,23 @@ Node JS is an open-source server environment required to run Superalgos.
**c.** Run the installer with the default configuration — just click Next until Node.JS is fully installed.
**Raspberry Pi Users:** From the SSH Terminal, send the following commands to install Node. ::NOTE:: It is best to use the most current and updated version of the FULL PiOS image.
```
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
```
followed by
```
sudo apt-get install -y nodejs
```
It is recommended to install the Node Package Manager
```
sudo apt install npm
```
you may also type the following to verify the Node.js installation and version.
```
node -v
```
## Git
Download and install Git.
@@ -34,6 +51,12 @@ Git is an open-source distributed version control system required to download an
**NOTE FOR MAC USERS:** Depending on your setup, installing Git may be optional. The native XCode Command Line Developer Tools seems to work well. If you do install Git, we have tested Tim Harper's binary installer successfully.
**Raspberry Pi Users:**
send the SSH Terminal command to install git. The most recent version of PiOS has Git already installed, so this may give you an error. The error will not affect your installation.
```
sudo apt-get install git
```
## Google Chrome or Safari
Use Chrome, or Safari on Mac. These are the only tested browsers.
@@ -48,7 +71,9 @@ Before you begin, it is recommended that you set up Chrome/Safari as your defaul
# Superalgos Client Installation
**1.** Scroll the page all the way to the top. Find and click the **Fork** button to create your fork/copy of this repository. To fork Superalgos you need a GitHub account. If you don't have one, go ahead and create it. A Fork is required for your contributions to the project (more on this later).
**1.** Scroll the page all the way to the top. Find and click the **Fork** button to create your fork/copy of this repository. To fork Superalgos you need a GitHub account. If you don't have one, go ahead and create it.
**NOTE:** A Fork is required for your contributions to the project. Superalgos will soon be moving into a new phase of development by incentivizing contributions. Incentives will be retroactive. The earlier in the life of the project you start contributing, the juicier your incentives will be, as the impact of contributions in a Community-driven project is clearly a function of time. This is an open invitation for you to become a vested member of the community!
**2.** Once the fork is created, you will land on the page of your fork. Copy the URL from your browser's address bar.
@@ -70,7 +95,9 @@ For example, if your Github username is John, the command will look like this:
git clone https://github.com/John/Superalgos
```
## Instalation Notes
Ok, you have installed Superalgos. To run the App, jump to the section Usage below.
## Installation Notes
**1.** You need to make a fork so that you may contribute work. Superalgos is a Community project and you are expected to contribute, like everyone else. You don't need to be a technical person to contribute. Fixing a typo in the docs or translating a paragraph into your native language are valuable contributions too. Superalgos has built-in features that make contributing easy. Help make Superalgos better and Superalgos will better serve you! [Free-riding is not cool](https://en.wikipedia.org/wiki/Free-rider_problem), particularly on free, open-source, Community-driven projects.
@@ -78,17 +105,26 @@ git clone https://github.com/John/Superalgos
**3.** You are better off running the git clone command as an administrator to avoid permission issues while creating the Superalgos folder and downloading the repository. It may work without admin powers depending on your setup, particularly if you are running the command on a folder where you've got write permissions.
**4.** Before installing the client on a remote computer in an attempt to access the UI from a different machine, we highly recommend you do a standard installation on your PC / laptop first. Leave your Raspberry Pi or server for later, once you have done all available tutorials. This single tip will save you a lot of time: you don't need to add complexity before you learn how to handle the app.
**4.** Before installing the client on a remote computer in an attempt to access the UI from a different machine, we highly recommend you do a standard installation on your PC / laptop first. Leave your Raspberry Pi or server for later, once you have done all available tutorials. This single tip will save you a lot of time: you don't need to add complexity before you learn how to handle the app.
# Usage
![Run the system](https://docs.superalgos.org/images/how-to/run-the-system-01.gif)
**1.** To run the Superalgos client, go to the Superalgos directory/folder and run this command:
```
node run
```
If you are running a headless Raspberry Pi (one without a screen) it is recommended to use the following instead.
```
cd Superalgos
```
then
```
node run minMemo noBrowser
```
![run-the-system-01](https://user-images.githubusercontent.com/13994516/107037804-e5fc6200-67bb-11eb-82f2-d0f40247fa14.gif)
**2.** The command launches your default browser to load the UI. If Chrome/Safari is not your default browser, copy the URL, close the browser, open Chrome/Safari, and paste the URL. Be patient... it takes a few seconds to fully load the UI.
@@ -102,13 +138,13 @@ node run
# Uninstall
Superalgos writes nothing out of the ```Superalgos``` folder. To completely uninstall the software, just delete the folder.
Superalgos writes nothing outside of the ```Superalgos``` folder. To completely uninstall the software, just delete the folder.
# Welcome Tutorial
Once the app finishes loading, an interactive tutorial takes you by the hand and walks you all around the system while you learn the basic skills required to use the interface, mine data, backtest strategies, and even run a live trading session. It is highly recommended you follow the tutorial until the end, as it is carefully crafted to make your onboarding as easy as possible. Tutorials are the absolute best way to tackle the learning curve. You should do all tutorials before you start exploring other avenues on your own.
![Welcome Tutorial](https://docs.superalgos.org/images/how-to/tutorial-welcome-00.png)
![welcome-tutorial-00](https://user-images.githubusercontent.com/13994516/107038771-4a6bf100-67bd-11eb-92e0-353525a972a9.gif)
**NOTE:** The tutorial uses Binance or Binance US as the exchange of choice. If you don’t have an account with Binance or Binance US, you will still be able to follow 100% of the tutorial. When you get to the live trading section, keep going even if you don't intend to run the session. You may learn how to work with other exchanges later on.
@@ -242,7 +278,7 @@ Subscribe to the [Superalgos YouTube Channel](https://www.youtube.com/channel/UC
## In-App Tutorials
There are many interactive tutorials you can use to learn from.
There are many interactive tutorials you may do and learn from.
# Other Resources
@@ -252,9 +288,13 @@ For an overview of what Superalgos can do for you, check the [Superalgos Website
## Telegram
For official news, join the [Superalgos Announcements Channel](https://t.me/superalgos).
Meet other users in the [Superalgos Telegram Community Group](https://t.me/superalgoscommunity).
Meet the developers in the [Superalgos Telegram Developer's Group](https://t.me/superalgosdevelop).
Meet developers in the [Superalgos Telegram Developer's Group](https://t.me/superalgosdevelop).
Meet designers in the [Superalgos Telegram UX/UI Group](https://t.me/superalgosuxui).
Spanish speaking users hang out in the [Superalgos en Español Telegram Group](https://t.me/superalgos_es).
@@ -272,7 +312,7 @@ Or follow [Superalgos on Facebook](https://www.facebook.com/superalgos).
# Contributing
Superalgos is a Community Project built by Contributors for Contributors. Learn [how to become a Contributor](https://docs.superalgos.org/contributing-to-superalgos.html).
Superalgos is a Community Project built by Contributors for Contributors. Learn [how to become a Contributor](https://superalgos.org/community-contribute.shtml).
## Top Contributors
@@ -280,4 +320,4 @@ Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Mill
# License
Superalgos is open-source software released under [Apache License 2.0](LICENSE).
Superalgos is open-source software released under [Apache License 2.0](LICENSE).