Merge pull request #1104 from Superalgos/master

Bringing bug fixes from master to develop. Plugin Workspace broken.
This commit is contained in:
Luis Fernando Molina authored and GitHub committed 2021-06-06 19:18:50 -04:00
commit 1227055ffc
22 files changed
+765 -83

No files matched your search

@@ -1 +1 @@
{"type":"Data Mine","name":"Masters","config":"{\n \"codeName\": \"Masters\"\n}","project":"Superalgos","sensorBots":[],"apiDataFetcherBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Candle Channels","config":"{\n\"codeName\": \"Candle-Channels\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Time-Frame-Market","config":"{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Time-Frame-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Time-Frame-Market Candles Channels","project":"Superalgos","id":"98bb0dce-e233-4f70-a4ab-9051ee23abd5","savedPayload":{"position":{"x":19583.91966989329,"y":21641.32100245677},"targetPosition":{"x":18969.6794350459,"y":20983.514850239706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Time-Frame-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Output Dataset","name":"Multi-Time-Frame-Market Candles Channels Objects","project":"Superalgos","id":"e5d3a974-b3e5-4f0c-acaf-9cf9915850ee","savedPayload":{"position":{"x":19392.737181251472,"y":21777.883872404756},"targetPosition":{"x":18969.6794350459,"y":20983.514850239706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Time-Frame-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}}],"outputDatasetFolders":[],"id":"81b11bce-fa94-4295-b3a9-a24b6c0c45d3","savedPayload":{"position":{"x":19324.033753975265,"y":19282.4884909688},"targetPosition":{"x":19035.65524519377,"y":19199.7972842237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Time-Frame-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"8c5feff4-7b13-404f-9fb7-844f3945715c","savedPayload":{"position":{"x":19294.41367459389,"y":21813.95400030735},"targetPosition":{"x":18820.30750768436,"y":21048.955083642526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Time-Frame-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"34699cb0-bf71-4fbc-8671-9570617b1cd0","savedPayload":{"position":{"x":19136.059972543495,"y":21891.748285404014},"targetPosition":{"x":18820.30750768436,"y":21048.955083642526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"902925d3-1d23-4894-9459-0be8df3965df"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Time-Frame-Market","project":"Superalgos","id":"ab069a67-5e2f-4a3b-91e1-967d56ba62b6","savedPayload":{"position":{"x":18965.572080344584,"y":21937.15450040086},"targetPosition":{"x":18820.30750768436,"y":21048.955083642526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Time-Frame-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"4775daf3-4ac9-4971-a4fb-4cf66d4fbb45","savedPayload":{"position":{"x":19292.805435404403,"y":19354.308706696716},"targetPosition":{"x":19035.65524519377,"y":19199.7972842237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"902925d3-1d23-4894-9459-0be8df3965df","savedPayload":{"position":{"x":19244.05275633147,"y":19415.599224325295},"targetPosition":{"x":19035.65524519377,"y":19199.7972842237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Time-Frame-Market","project":Line truncated
{"type":"Data Mine","name":"Masters","config":"{\n \"codeName\": \"Masters\"\n}","project":"Superalgos","sensorBots":[],"apiDataFetcherBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Candle Channels","config":"{\n\"codeName\": \"Candle-Channels\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Time-Frame-Market","config":"{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Time-Frame-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Time-Frame-Market Candles Channels","project":"Superalgos","id":"bca0a87d-0a7a-427d-b80d-0ff9b55b67b6","savedPayload":{"position":{"x":23593.654035860167,"y":28458.189036869906},"targetPosition":{"x":22979.413801012775,"y":27800.38288465284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Time-Frame-Market","id":"61dfc7bf-0d57-4aa4-8d28-f60817a16775"}}},{"type":"Output Dataset","name":"Multi-Time-Frame-Market Candles Channels Objects","project":"Superalgos","id":"66e502d1-b5f7-4397-a817-8fd10c094658","savedPayload":{"position":{"x":23402.47154721835,"y":28594.75190681789},"targetPosition":{"x":22979.413801012775,"y":27800.38288465284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Time-Frame-Market","id":"c37c8931-69d3-4497-aa65-487b1f1f51eb"}}}],"outputDatasetFolders":[],"id":"076b6915-7765-497c-922e-cd7d3b8967af","savedPayload":{"position":{"x":23396.78066799107,"y":24964.359385708613},"targetPosition":{"x":23365.42212901077,"y":25262.715954319094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"b13c875a-dd02-41d4-a6f6-4a817938e413","savedPayload":{"position":{"x":23523.73736502907,"y":24686.97500865251},"targetPosition":{"x":23472.932513874362,"y":24982.641826369934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"0962f868-4fbd-46be-949d-9321a281c8fe","savedPayload":{"position":{"x":23580.442898737954,"y":24702.567698420775},"targetPosition":{"x":23472.932513874362,"y":24982.641826369934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"975f9aac-2507-4010-8812-19c60cb824a1"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Time-Frame-Market","project":"Superalgos","id":"094639b8-5d92-468b-bd35-9772587788d5","savedPayload":{"position":{"x":23633.016868649047,"y":24728.923479858742},"targetPosition":{"x":23472.932513874362,"y":24982.641826369934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Time-Frame-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"ba3ab91b-d5c6-4962-a5f5-03f294a3bc93","savedPayload":{"position":{"x":23472.932513874362,"y":24982.641826369934},"targetPosition":{"x":23365.42212901077,"y":25262.715954319094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"975f9aac-2507-4010-8812-19c60cb824a1","savedPayload":{"position":{"x":23541.757704698513,"y":25020.01085600661},"targetPosition":{"x":23365.42212901077,"y":25262.715954319094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"4366efdf-26e1-4dbf-acbf-a0eefac96b27","savedPayload":{"position":{"x":23598.56591744Line truncated
@@ -1 +1 @@
{"type":"Workspace","name":"Getting Started Tutorials","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":" 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":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{ \n\"parameter1\": \"Value for parameter1 defined at the Product Definition\"\n}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Time-Frame-Market","project":"Superalgos","id":"afeed756-c931-4f34-b27c-12fd2b5ef39a","savedPayload":{"position":{"x":23310.348760844034,"y":29310.042580543206},"targetPosition":{"x":23600.126508730755,"y":29387.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Time-Frame-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Time-Frame-Daily","project":"Superalgos","id":"f11443df-d85b-486c-acaf-a446a5086c09","savedPayload":{"position":{"x":23387.99447437479,"y":29175.556259718},"targetPosition":{"x":23600.126508730755,"y":29387.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Time-Frame-Daily","id":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"e644a294-b0f0-4996-817e-0d95f92042d5","savedPayload":{"position":{"x":23600.126508730755,"y":29387.688294073963},"targetPosition":{"x":23859.934129866087,"y":29537.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0f9200a1-81fe-4ef4-affc-f4a00c89a52a","savedPayload":{"position":{"x":23859.934129866087,"y":29537.688294073963},"targetPosition":{"x":24119.74175100142,"y":29687.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e864d3c-4660-42c2-8499-7db31789fd12","savedPayload":{"position":{"x":24119.74175100142,"y":29687.688294073963},"targetPosition":{"x":24379.549372136753,"y":29837.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e04f5978-a32c-4950-a7e3-d2b8c0658000","savedPayload":{"position":{"x":24379.549372136753,"y":29837.688294073963},"targetPosition":{"x":24639.356993272086,"y":29987.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}},{"type":"Data Mine Tasks","name":"Candles","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Candles","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":"ef7ba335-da83-4c53-9bb2-480360223fb5","savedPayload":{"position":{"x":24189.356993272086,"y":28608.265430667965},"targetPosition":{"x":24339.356993272086,"y":28868.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"92b80bac-30e0-410a-ac74-c8894ed52b64","savedPayload":{"position":{"x":24339.356993272086,"y":28868.073051803298},"targetPosition":{"x":24489.356993272086,"y":29127.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":Line truncated
{"type":"Workspace","name":"Getting Started Tutorials","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":" BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{ \n\"parameter1\": \"Value for parameter1 defined at the Product Definition\"\n}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Time-Frame-Daily","project":"Superalgos","id":"afeed756-c931-4f34-b27c-12fd2b5ef39a","savedPayload":{"position":{"x":23368.348760844034,"y":29306.042580543206},"targetPosition":{"x":23658.126508730755,"y":29383.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Time-Frame-Daily","id":"a4122e12-4925-46c8-9d45-77299af9cb69"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Time-Frame-Market","project":"Superalgos","id":"f11443df-d85b-486c-acaf-a446a5086c09","savedPayload":{"position":{"x":23445.99447437479,"y":29171.556259718},"targetPosition":{"x":23658.126508730755,"y":29383.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Time-Frame-Market","id":"d474d196-bedd-4fdd-8d65-9eaf4725d6ea"}}}],"id":"e644a294-b0f0-4996-817e-0d95f92042d5","savedPayload":{"position":{"x":23658.126508730755,"y":29383.688294073963},"targetPosition":{"x":23917.934129866087,"y":29533.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0f9200a1-81fe-4ef4-affc-f4a00c89a52a","savedPayload":{"position":{"x":23917.934129866087,"y":29533.688294073963},"targetPosition":{"x":24177.74175100142,"y":29683.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e864d3c-4660-42c2-8499-7db31789fd12","savedPayload":{"position":{"x":24177.74175100142,"y":29683.688294073963},"targetPosition":{"x":24437.549372136753,"y":29833.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e04f5978-a32c-4950-a7e3-d2b8c0658000","savedPayload":{"position":{"x":24437.549372136753,"y":29833.688294073963},"targetPosition":{"x":24697.356993272086,"y":29983.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}},{"type":"Data Mine Tasks","name":"Candles","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Candles","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":"ef7ba335-da83-4c53-9bb2-480360223fb5","savedPayload":{"position":{"x":24247.356993272086,"y":28604.265430667965},"targetPosition":{"x":24397.356993272086,"y":28864.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"92b80bac-30e0-410a-ac74-c8894ed52b64","savedPayload":{"position":{"x":24397.356993272086,"y":28864.073051803298},"targetPosition":{"x":24547.356993272086,"y":29123.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distLine truncated
@@ -0,0 +1,107 @@
{
"type": "Social Bot Command",
"definition": {
"text": "The Social Bot Command node is used to configure slash commands to be interpreted and executed by Superalgos.",
"updated": 1622960246688
},
"paragraphs": [
{
"style": "Title",
"text": "Overview",
"updated": 1622959780422
},
{
"style": "Text",
"text": "The Social Bot Command node is used to configure slash commands which when triggered by a user from the messaging application will be interpreted and executed by Superalgos.",
"updated": 1622960239968
},
{
"style": "List",
"text": "The configuration of the Social Bot Command node defines the slash command that is registered.",
"updated": 1622960297679
},
{
"style": "List",
"text": "The child Formula node defines the string which is evaluated and sent when the command is received."
},
{
"style": "Text",
"text": "The formula can contain any of the node paths from your Trading Engine and these can be entered exactly as the are within your Trading Strategy.",
"updated": 1622960375754
},
{
"style": "Subtitle",
"text": "Example"
},
{
"style": "Text",
"text": "The below example will set up the slash command \"/counters\" which will send a message with the current Trading Episode Counters when received.",
"updated": 1622958631363
},
{
"style": "Text",
"text": "Social Bot Command Configuration:",
"updated": 1622959504089
},
{
"style": "Json",
"text": "{\n \"name\": \"counters\"\n }",
"updated": 1622958753709
},
{
"style": "Text",
"text": "Child Node Formula:",
"updated": 1622959506802
},
{
"style": "Json",
"text": "\"SUPERALGOS COUNTERS\\n\" +\n \"\\nPeriods: \" + tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.periods.value +\n \"\\nStrategies: \" + tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.strategies.value +\n \"\\nPositions: \" + tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.positions.value +\n \"\\nOrders: \" + tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.orders.value +\n \"\\nHits: \" + tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.hits.value +\n \"\\nFails: \" + tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters.fails.value",
"updated": 1622959765017
},
{
"style": "Title",
"text": "Examples",
"updated": 1622959793276
},
{
"style": "Text",
"text": "Below are several example formulas and suggested command names."
},
{
"style": "Subtitle",
"text": "/balances"
},
{
"style": "Json",
"text": "let baseAsset = TS.projects.superalgos.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.baseAsset.referenceParent.config.codeName\n let quotedAsset = TS.projects.superalgos.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.quotedAsset.referenceParent.config.codeName\n\n \"SUPERALGOS BALANCES\\n\" +\n \"\\nPair: \" + baseAsset + \"/\" + quotedAsset +\n \"\\nBase Asset: \" + tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset.balance.value + \" \" + baseAsset +\n \"\\nQuoted Asset: \" + tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value + \" \" + quotedAsset",
"updated": 1622960177319
},
{
"style": "Subtitle",
"text": "/statistics",
"updated": 1622960154435
},
{
"style": "Json",
"text": "\"<b><u>SUPERALGOS STATISTICS</u></b>\\n\" +\n \"\\n<b>Days:</b> \" + (tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics.days.value).toFixed(2) +\n \"\\n<b>Profit Loss:</b> \" + tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics.profitLoss.value +\n \"\\n<b>ROI:</b> \" + (tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics.ROI.value).toFixed(2) +\n \"\\n<b>Annualized Rate Of Return:</b> \" + (tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics.annualizedRateOfReturn.value).toFixed(2) +\n \"\\n<b>Hit Fail:</b> \" + tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics.hitFail.value",
"updated": 1622960165589
},
{
"style": "Subtitle",
"text": "/uptime"
},
{
"style": "Json",
"text": "let sessionBegin = TS.projects.superalgos.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_BEGIN\n\n let dateBegin = new Date(sessionBegin)\n let dateNow = new Date();\n\n let seconds = Math.floor((dateNow - (dateBegin))/1000)\n let minutes = Math.floor(seconds/60)\n let hours = Math.floor(minutes/60)\n let days = Math.floor(hours/24)\n\n hours = hours-(days*24)\n minutes = minutes-(days*24*60)-(hours*60)\n seconds = seconds-(days*24*60*60)-(hours*60*60)-(minutes*60)\n\n let uptime = days + \"D, \" + hours + \"H, \" + minutes + \"M, \" + seconds + \"S\"\n\n \"SUPERALGOS UPTIME\\n\\nUptime: \" + uptime",
"updated": 1622959839303
},
{
"style": "Title",
"text": ""
},
{
"style": "Text",
"text": ""
}
]
}
@@ -4,7 +4,14 @@
"type": "Hello World Tutorial",
"definition": {
"text": "This tutorial is a flash course, cut-to-the-chase style, introducing you to the notion of building a simple Trading System. The tutorial assumes a basic understanding of how Trading Strategies are defined. That said, you may find it useful as a first step introduction too, particularly if you like direct, to-the-point information.",
"updated": 1617110220942
"updated": 1617110220942,
"translations": [
{
"language": "DE",
"text": "Dieses Tutorial ist ein Schnellkurs, der dich in die Idee einführt, ein einfaches Tradingsystem aufzubauen. Das Tutorial setzt ein grundlegendes Verständnis dafür voraus, wie Trading-Strategien definiert werden. Das heißt, du kannst es auch als eine allererste Einführung nützlich finden, besonders wenn du direkte, auf den Punkt gebrachte Informationen magst.",
"updated": 1622969782378
}
]
},
"paragraphs": [
{
@@ -8,31 +8,79 @@
"name": "tutorial",
"project": "Superalgos"
},
"updated": 1614275495850
"updated": 1614275495850,
"translations": [
{
"language": "DE",
"text": "Lass uns die Mutter aller Handelsstrategien aufbauen: Die Moving Average Überkreuzung!",
"updated": 1622970055812,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "For this tutorial I assume that",
"updated": 1614240501976
"updated": 1614240501976,
"translations": [
{
"language": "DE",
"text": "Für dieses Lernprogramm gehe ich davon aus, dass",
"updated": 1622970071369,
"style": "Text"
}
]
},
{
"style": "List",
"text": "You have done the Welcome Tutorial in the Getting Started Workspace"
"text": "You have done the Welcome Tutorial in the Getting Started Workspace",
"translations": [
{
"language": "DE",
"text": "du das Willkommens-Tutorial im Workspace \"Erste Schritte\" absolviert haben",
"updated": 1622970086389,
"style": "List"
}
]
},
{
"style": "List",
"text": "You are comfortable moving around the Workspace and the Charts"
"text": "You are comfortable moving around the Workspace and the Charts",
"translations": [
{
"language": "DE",
"text": "du dich sicher im Workspace und in den Charts bewegen kannst.",
"updated": 1622970109192,
"style": "List"
}
]
},
{
"style": "List",
"text": "You have a basic understanding about what is a Trading Bot and a strategy",
"updated": 1614275543824
"updated": 1614275543824,
"translations": [
{
"language": "DE",
"text": "du hast ein grundlegendes Verständnis davon, was ein Trading Bot und eine Trading Strategie ist",
"updated": 1622970162593,
"style": "List"
}
]
},
{
"style": "Note",
"text": "We will build a bot to backtest a strategy based on Simple Moving Average Cross between SMA50 and SMA200 on 4H TF, a classic!",
"updated": 1622385652232
"text": "We will build a bot to backtest a strategy based on Simple Moving Average Cross between SMA50 and SMA200 on 4h TF, a classic!",
"updated": 1622980039332,
"translations": [
{
"language": "DE",
"text": "Wir werden einen Bot bauen, der auf eine Simple Moving Average Überkreuzung zwischen SMA50 und SMA200 auf 4h TF(Time Frame) basierende Strategie backtestet, ein Klassiker!",
"updated": 1622980080284,
"style": "Note"
}
]
},
{
"style": "Text",
@@ -8,18 +8,39 @@
"icon": {
"name": "layer",
"project": "Superalgos"
}
},
"translations": [
{
"language": "DE",
"text": "Workspaces können angepasst werden!",
"updated": 1622977673407
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "I arranged the workspace in a slightly different way compared to Getting Started. It's a good practice to customize the workspace to keep it tidy and clean. Remember that every hierarchy, node or offspring can impact on your machine resources.",
"updated": 1614241304126
"updated": 1614241304126,
"translations": [
{
"language": "DE",
"text": "Ich habe den Workspace im Vergleich zu Getting Started (\"Erste Schritte\") etwas anders angeordnet. Es ist eine gute Praxis, den Workspace anzupassen, um ihn aufgeräumt und sauber zu halten. Denke daran, dass jede Hierarchie, jeder Knoten und jeder Nachfolgende Auswirkungen auf deine Maschinenressourcen haben kann.",
"updated": 1622977620392
}
]
},
{
"style": "Success",
"text": "Have a look around, right click on empty space and explore the Workspace I arranged for you!",
"updated": 1614334045360
"updated": 1614334045360,
"translations": [
{
"language": "DE",
"text": "Schau dich um, klicke mit der rechten Maustaste auf eine leere Fläche und erkunde den Workspace, den ich für dich eingerichtet habe!",
"updated": 1622977643971
}
]
},
{
"style": "Text",
@@ -8,21 +8,49 @@
"name": "data-mine",
"project": "Superalgos"
},
"updated": 1614241455319
"updated": 1614241455319,
"translations": [
{
"language": "DE",
"text": "Nicht nur Workspaces können modifiziert werden.",
"updated": 1622977759915
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "SA is very modular and can be arranged the way we prefer for our needs.",
"updated": 1614241605095
"updated": 1614241605095,
"translations": [
{
"language": "DE",
"text": "SA ist sehr modular und kann so angeordnet werden, wie wir es für unsere Bedürfnisse bevorzugen.",
"updated": 1622977780236
}
]
},
{
"style": "Text",
"text": "I prepared for you a very basic Workspace with a new Data Mine and arranged the nodes deleting all I don't need for this tutorial."
"text": "I prepared for you a very basic Workspace with a new Data Mine and arranged the nodes deleting all I don't need for this tutorial.",
"translations": [
{
"language": "DE",
"text": "Ich habe für dich einen sehr einfachen Workspace mit einer neuen Data Mine vorbereitet und die Knoten angeordnet, wobei ich alles gelöscht habe, was ich für dieses Tutorial nicht benötige.",
"updated": 1622977811209
}
]
},
{
"style": "Success",
"text": "In SA data mines can be added and removed but the data saved on your hard disk will not be deleted if you remove an indicator!"
"text": "In SA data mines can be added and removed but the data saved on your hard disk will not be deleted if you remove an indicator!",
"translations": [
{
"language": "DE",
"text": "In SA können Data Mines hinzugefügt und entfernt werden, aber die auf der Festplatte gespeicherten Daten werden nicht gelöscht, wenn du einen Indikator entfernst!",
"updated": 1622977843713
}
]
},
{
"style": "Text",
@@ -8,33 +8,82 @@
"name": "strategy",
"project": "Superalgos"
},
"updated": 1614241902261
"updated": 1614241902261,
"translations": [
{
"language": "DE",
"text": "Lass uns die Mutter aller Strategien erstellen!",
"updated": 1622977892890
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "To backtest a strategy, first we need to write it or to have it clearly in our mind. So these are the cornerstones on which our test is based:",
"updated": 1614242397042
"updated": 1614242397042,
"translations": [
{
"language": "DE",
"text": "Um eine Strategie backtesten zu können, müssen wir sie erst einmal schreiben oder klar im Kopf haben. Auf folgenden Eckpfeilern basiert unser Test:",
"updated": 1622979087886
}
]
},
{
"style": "List",
"text": "Strategy uses SMA50 and SMA200"
"text": "Strategy uses SMA50 and SMA200",
"translations": [
{
"language": "DE",
"text": "Strategie verwendet SMA50 und SMA200",
"updated": 1622977962657
}
]
},
{
"style": "List",
"text": "Strategy is based on 4H TF"
"text": "Strategy is based on 4H TF",
"translations": [
{
"language": "DE",
"text": "Die Strategie basiert auf 4h TF (Time Frame)",
"updated": 1622979509680
}
]
},
{
"style": "List",
"text": "Bot will buy the asset when SMA50 cross up SMA200"
"text": "Bot will buy the asset when SMA50 cross up SMA200",
"translations": [
{
"language": "DE",
"text": "Der Bot wird das Asset kaufen, wenn der SMA50 den SMA200 nach oben kreuzt",
"updated": 1622978113525
}
]
},
{
"style": "List",
"text": "Stop Loss is set at 20% from entry"
"text": "Stop Loss is set at 20% from entry",
"translations": [
{
"language": "DE",
"text": "Stop Loss wird auf 20% vom Einstiegspunkt gesetzt",
"updated": 1622978127244
}
]
},
{
"style": "List",
"text": "Take Profit is set at 100% or on SMA50 cross down SMA200"
"text": "Take Profit is set at 100% or on SMA50 cross down SMA200",
"translations": [
{
"language": "DE",
"text": "Take Profit wird auf 100% oder auf SMA50 kreuzt SMA200 nach unten gesetzt",
"updated": 1622978244002
}
]
}
]
}
@@ -8,31 +8,73 @@
"name": "trading-system-reference",
"project": "Superalgos"
},
"updated": 1614242955916
"updated": 1614242955916,
"translations": [
{
"language": "DE",
"text": "Das Trading System ist bereits aufgesetzt. Lass es uns anschauen!",
"updated": 1622978283268
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "The strategy is already deployed. So let's have a look around to understand it!",
"updated": 1614243171735
"updated": 1614243171735,
"translations": [
{
"language": "DE",
"text": "ie Strategie ist bereits umgesetzt. Schauen wir sie uns einmal an, um sie zu verstehen!",
"updated": 1622978294304
}
]
},
{
"style": "Text",
"text": "As you cand see, a Trading System has 2 main offsprings:"
"text": "As you cand see, a Trading System has 2 main offsprings:",
"translations": [
{
"language": "DE",
"text": "Wie du sehen kannst, hat ein Tradingsystem zwei Hauptnachfolger:",
"updated": 1622978319793
}
]
},
{
"style": "List",
"text": "Dynamic Indicators: This lets you build On-The-Fly indicators",
"updated": 1614243245995
"updated": 1614243245995,
"translations": [
{
"language": "DE",
"text": "Dynamic Indicators (\"Dynamische Indikatoren\"): Damit kannst du On-The-Fly-Indikatoren erstellen",
"updated": 1622978351655
}
]
},
{
"style": "List",
"text": "Trading Strategy: Is where we define parameters, conditions and formulas for our strategy",
"updated": 1614243343779
"updated": 1614243343779,
"translations": [
{
"language": "DE",
"text": "Trading Strategy (\"Handelsstrategie\"): Hier definieren wir Parameter, Bedingungen und Formeln für unsere Strategie",
"updated": 1622978372386
}
]
},
{
"style": "Success",
"text": "This tutorial doesn't cover definitions or concepts used in SA. This tutorial is only about how to deploy a strategy!"
"text": "This tutorial doesn't cover definitions or concepts used in SA. This tutorial is only about how to deploy a strategy!",
"translations": [
{
"language": "DE",
"text": "Dieses Tutorial behandelt keine Definitionen oder Konzepte, die in SA verwendet werden. In diesem Tutorial geht es nur darum, wie man eine Strategie einsetzt!",
"updated": 1622978385419
}
]
}
]
}
@@ -8,22 +8,50 @@
"name": "trigger-stage",
"project": "Superalgos"
},
"updated": 1622385913906
"updated": 1622385913906,
"translations": [
{
"language": "DE",
"text": "Trigger Stage ist unser Talent Scout.",
"updated": 1622978455848
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Our strategy is based on SMA cross and it is in this node that we can instruct the bot to search for conditions that have to be met in order to take a trade.",
"updated": 1614243969544
"updated": 1614243969544,
"translations": [
{
"language": "DE",
"text": "Unsere Strategie basiert auf dem SMA-Kreuz und in diesem Knoten können wir den Bot anweisen, nach Bedingungen zu suchen, die erfüllt sein müssen, um einen Handel zu tätigen.",
"updated": 1622978530689
}
]
},
{
"style": "Important",
"text": "This stage is all about checking the market and deciding if some conditions are worth a trade or not!"
"text": "This stage is all about checking the market and deciding if some conditions are worth a trade or not!",
"translations": [
{
"language": "DE",
"text": "In dieser Phase geht es darum, den Markt zu überprüfen und zu entscheiden, ob die Bedingungen einen Handel wert sind oder nicht!",
"updated": 1622978559675
}
]
},
{
"style": "Text",
"text": "Let's have a look at its 3 offsprings and I show you some little tricks to implement the strategy in the fastest possible way!",
"updated": 1614244059064
"updated": 1614244059064,
"translations": [
{
"language": "DE",
"text": "Werfen wir einen Blick auf seine drei Nachfolger und ich zeige dir ein paar kleine Tricks, um die Strategie schnellstmöglich zu implementieren!",
"updated": 1622978601078
}
]
}
]
}
@@ -8,13 +8,29 @@
"name": "trigger-on",
"project": "Superalgos"
},
"updated": 1614244953169
"updated": 1614244953169,
"translations": [
{
"language": "DE",
"text": "Reserviere Geldmittel!",
"updated": 1622978638588,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Trigger On event is about reserving (locking) your funds and making them available to the bot.",
"updated": 1614244945700
"updated": 1614244945700,
"translations": [
{
"language": "DE",
"text": "Beim Ereignis Trigger On geht es darum, deine Mittel zu reservieren (zu sperren) und sie dem Bot zur Verfügung zu stellen.",
"updated": 1622981206455,
"style": "Text"
}
]
},
{
"style": "Text",
@@ -22,19 +38,51 @@
},
{
"style": "Text",
"text": "What I need to do is:"
"text": "What I need to do is:",
"translations": [
{
"language": "DE",
"text": "Was ich tun muss, ist:",
"updated": 1622978676342,
"style": "Text"
}
]
},
{
"style": "List",
"text": "Define the TF"
"text": "Define the TF",
"translations": [
{
"language": "DE",
"text": "Definiere den TF (Time Frame)",
"updated": 1622978697311,
"style": "List"
}
]
},
{
"style": "List",
"text": "Define the SMA50/200 cross"
"text": "Define the SMA50/200 cross",
"translations": [
{
"language": "DE",
"text": "Definiere das SMA50/200 Kreuz",
"updated": 1622978711889,
"style": "List"
}
]
},
{
"style": "Text",
"text": "To define a cross I use 2 conditions:"
"text": "To define a cross I use 2 conditions:",
"translations": [
{
"language": "DE",
"text": "Zur Definition, verwende ich zwei Bedingungen:",
"updated": 1622981248271,
"style": "Text"
}
]
},
{
"style": "Javascript",
@@ -8,18 +8,39 @@
"name": "trigger-off",
"project": "Superalgos"
},
"updated": 1614333368044
"updated": 1614333368044,
"translations": [
{
"language": "DE",
"text": "Wenn du keine Bedingung benötigst setze es einfach auf „False“ oder „True“!",
"updated": 1622978946854
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "For my backtest I don't need a Trigger Off condition so I just write false in Javascript code",
"updated": 1614334212315
"updated": 1614334212315,
"translations": [
{
"language": "DE",
"text": "Für meinen Backtest benötige ich keine Trigger Off Bedingung, also schreibe ich einfach False in den Javascript-Code",
"updated": 1622978973861
}
]
},
{
"style": "Success",
"text": "Remember that Conditions can be only True or False. When I write some Javascript code inside these type of nodes, they must evaluate True or False because essentially what I'm writing is a test.",
"updated": 1614245807894
"updated": 1614245807894,
"translations": [
{
"language": "DE",
"text": "Denke daran, dass Bedingungen nur True oder False sein können. Wenn ich Javascript-Code innerhalb dieser Art von Knoten schreibe, müssen sie True oder False auswerten, weil das, was ich schreibe, im Wesentlichen ein Test ist.",
"updated": 1622978923884
}
]
}
]
}
@@ -8,21 +8,53 @@
"name": "take-position",
"project": "Superalgos"
},
"updated": 1614246263376
"updated": 1614246263376,
"translations": [
{
"language": "DE",
"text": "Zeit, um Position zu beziehen!",
"updated": 1622979146522,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "In this node I use the same trick used for the Trigger Off Event but in this case forcing it to True. I already defined in the Trigger On Event what are my conditions. So in this node I can just copy the two conditions or set it to True.",
"updated": 1614260289104
"updated": 1614260289104,
"translations": [
{
"language": "DE",
"text": "In diesem Knoten verwende ich den gleichen Trick wie beim Trigger Off Event (Ereignis), erzwinge aber in diesem Fall den Wert True. Ich habe bereits im Trigger On Event definiert, was meine Bedingungen sind. In diesem Knoten kann ich also einfach die beiden Bedingungen kopieren und auf True setzen.",
"updated": 1622981314446,
"style": "Text"
}
]
},
{
"style": "Success",
"text": "Of course if I need more conditions I can add or modify them as per my needs!"
"text": "Of course if I need more conditions I can add or modify them as per my needs!",
"translations": [
{
"language": "DE",
"text": "Wenn ich mehr Bedingungen benötige, kann ich sie natürlich nach meinen Bedürfnissen hinzufügen oder ändern!",
"updated": 1622979260265,
"style": "Success"
}
]
},
{
"style": "Note",
"text": "Cool. My initial definitions are set. It's time to move to the Open Stage!"
"text": "Cool. My initial definitions are set. It's time to move to the Open Stage!",
"translations": [
{
"language": "DE",
"text": "Cool. Meine Definitionen sind festgelegt. Es ist an der Zeit, zur Open Stage überzugehen!",
"updated": 1622981356171,
"style": "Note"
}
]
}
]
}
@@ -8,18 +8,39 @@
"name": "open-stage",
"project": "Superalgos"
},
"updated": 1614260398081
"updated": 1614260398081,
"translations": [
{
"language": "DE",
"text": "Die Open Stage ist der Zeitpunkt, an dem der Bot die Position einnimmt!",
"updated": 1622979315892
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "The strategy I want to backtest is based on 4h TF and the strategy is Long. This means that bot will Buy the asset to later Sell it (at a better price we hope!). To keep things simple, all I have to do is to indicate the TF in the Target Rate node using my full balance in the Target Size in Quoted Asset.",
"updated": 1614333476016
"updated": 1614333476016,
"translations": [
{
"language": "DE",
"text": "Die Strategie, die ich backtesten möchte, basiert auf 4h TF und die Strategie ist Long (steigende Kurse). Das bedeutet, dass der Bot das Asset kaufen wird, um es später zu verkaufen (zu einem besseren Preis, wie wir hoffen!). Um die Dinge einfach zu halten, muss ich nur den TF im Target Rate-Knoten angeben, indem ich meinen vollen Saldo im Target Size in Quoted Asset verwende.",
"updated": 1622979336945
}
]
},
{
"style": "Success",
"text": "If our market is BTC/USDT then the Quoted Asset is USDT and Base Assest is BTC",
"updated": 1614260724325
"text": "If our market is BTC/USDT then the Quoted Asset is USDT and Base Asset is BTC",
"updated": 1622979463214,
"translations": [
{
"language": "DE",
"text": "Wenn unser Markt BTC/USDT ist, dann ist das Quoted Asset USDT und Base Asset ist BTC.",
"updated": 1622979556680
}
]
}
]
}
@@ -8,18 +8,39 @@
"name": "manage-stage",
"project": "Superalgos"
},
"updated": 1614261028631
"updated": 1614261028631,
"translations": [
{
"language": "DE",
"text": "Gewinn mitnehmen (Take Profit) oder einen Verlust begrenzen (Stop Loss)?!",
"updated": 1622979661677
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "In this stage bot check if the price has hit Take Profit (TP) or Stop Loss (SL). Initial conditions for my strategy was to set a SL at 20% from entry and a TP at 100% or when MA50 cross under MA200.",
"updated": 1614333590591
"updated": 1614333590591,
"translations": [
{
"language": "DE",
"text": "In dieser Phase prüft der Bot, ob der Preis Take Profit (TP) oder Stop Loss (SL) erreicht hat. Die anfänglichen Bedingungen für meine Strategie waren, einen SL bei 20% vom Einstieg zu setzen und einen TP bei 100% oder wenn MA50 unter MA200 kreuzt.",
"updated": 1622979639862
}
]
},
{
"style": "Text",
"text": "Stop Loss formula:",
"updated": 1614333601220
"updated": 1614333601220,
"translations": [
{
"language": "DE",
"text": "Stop Loss Formel:",
"updated": 1622979677028
}
]
},
{
"style": "Javascript",
@@ -29,7 +50,14 @@
{
"style": "Text",
"text": "Take Profit formula is a little bit more elaborate:",
"updated": 1614333616750
"updated": 1614333616750,
"translations": [
{
"language": "DE",
"text": "Die Take Profit Formel ist ein wenig aufwendiger:",
"updated": 1622979702092
}
]
},
{
"style": "Javascript",
@@ -8,13 +8,27 @@
"name": "close-stage",
"project": "Superalgos"
},
"updated": 1614261551174
"updated": 1614261551174,
"translations": [
{
"language": "DE",
"text": "Die Close Stage ist für das Schließen des Trades zuständig.",
"updated": 1622979775474
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "In the previous stage (the Manage Stage) bot is checking if the current price has hit the SL or the TP. Once one of these two events has been hit, then the Close Stage take charge of closing the trade. The way it works is very similar to the Open Stage. Bot need to know at what candle should look",
"updated": 1614261954345
"updated": 1614261954345,
"translations": [
{
"language": "DE",
"text": "In der vorherigen Phase (der Manage Stage) prüft der Bot, ob der aktuelle Preis den SL oder den TP getroffen hat. Sobald eines dieser beiden Ereignisse eingetreten ist, übernimmt die Close Stage die Aufgabe, die Position zu schließen. Die Funktionsweise ist sehr ähnlich wie bei der Open Stage. Der Bot muss wissen, auf welche Kerze er schauen soll.",
"updated": 1622979799896
}
]
},
{
"style": "Javascript",
@@ -22,7 +36,14 @@
},
{
"style": "Text",
"text": "And obviously as opposed to the Open Stage, here we Sell the asset so we need a Market Sell Order and what bot sells is the Quoted asset"
"text": "And obviously as opposed to the Open Stage, here we Sell the asset so we need a Market Sell Order and what bot sells is the Quoted asset",
"translations": [
{
"language": "DE",
"text": "Im Gegensatz zur Open Stage verkaufen wir hier das Asset, daher benötigen wir eine Market Sell Order und der Bot verkauft das quotierte Asset.",
"updated": 1622979827422
}
]
},
{
"style": "Text",
@@ -8,23 +8,51 @@
"name": "announcement",
"project": "Superalgos"
},
"updated": 1614262144926
"updated": 1614262144926,
"translations": [
{
"language": "DE",
"text": "Strategie definiert!",
"updated": 1622980119217
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "As you have seen, implementing a simple strategy is a matter of few lines of code!",
"updated": 1614262171702
"updated": 1614262171702,
"translations": [
{
"language": "DE",
"text": "Wie du gesehen hast, ist die Implementierung einer einfachen Strategie eine Sache von wenigen Zeilen Code!",
"updated": 1622980130290
}
]
},
{
"style": "Success",
"text": "Keep this in mind to deal correctly with Base and Quoted Asset. Base is on top, Quoted is at bottom! So in our case BTC/USD we have BTC is the Base Asset while USDT is the Quoted Asset",
"updated": 1614262277141
"updated": 1614262277141,
"translations": [
{
"language": "DE",
"text": "Beachte dies, um korrekt mit Base und Quoted Asset umzugehen. Base ist oben, Quoted ist unten! In unserem Fall BTC/USD ist also BTC das Basis-Asset, während USDT das quotierte Asset ist.",
"updated": 1622980143220
}
]
},
{
"style": "Warning",
"text": "It doesn't change if you go Short. If strategy is Short then in the Open Stage bot will sell the Base Asset and later buy it back using Quoted Asset!",
"updated": 1614262348272
"updated": 1614262348272,
"translations": [
{
"language": "DE",
"text": "Das ändert sich nicht, wenn du Short gehst. Wenn die Strategie Short ist, wird der Bot in der Eröffnungsphase das Basis-Asset verkaufen und es später mit dem quotierten Asset zurückkaufen!",
"updated": 1622980155348
}
]
}
]
}
@@ -8,23 +8,51 @@
"name": "data-tasks",
"project": "Superalgos"
},
"updated": 1614267263084
"updated": 1614267263084,
"translations": [
{
"language": "DE",
"text": "Eventuell hast du bereits ein paar Daten gemined!",
"updated": 1622980204621
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "If you have done the intro Tutorial then probably you already have mined some data. But I added a new indicator that is not present in the initial configuration. So please Run the data Mines and wait until they are 100% ready.",
"updated": 1614267281564
"updated": 1614267281564,
"translations": [
{
"language": "DE",
"text": "Wenn du das Intro-Tutorial gemacht hast, dann hast du wahrscheinlich schon einige Daten geschürft. Allerdings habe ich einen neuen Indikator hinzugefügt, der in der Anfangskonfiguration nicht vorhanden ist. Führe also bitte die Data Mines aus (\"Run\") und warte, bis sie zu 100% fertig sind.",
"updated": 1622980292728
}
]
},
{
"style": "Important",
"text": "Make sure that under Sparta Data Mine Tasks the newly added indicator Simple Moving Average is 100% updated.",
"updated": 1614267364900
"updated": 1614267364900,
"translations": [
{
"language": "DE",
"text": "Stelle sicher, dass unter Sparta Data Mine Tasks der neu hinzugefügte Indikator Simple Moving Average zu 100% aktualisiert ist.",
"updated": 1622980304913
}
]
},
{
"style": "Success",
"text": "Once all indicators are 100% you can stop the data mines and save resources for the backtest",
"updated": 1614267400047
"updated": 1614267400047,
"translations": [
{
"language": "DE",
"text": "Sobald alle Indikatoren 100%ig sind, kannst du die Data Mines stoppen und Ressourcen für den Backtest sparen.",
"updated": 1622980322182
}
]
}
]
}
@@ -8,32 +8,74 @@
"icon": {
"name": "backtesting-session",
"project": "Superalgos"
}
},
"translations": [
{
"language": "DE",
"text": "Stelle sicher, dass alle Parameter korrekt sind!",
"updated": 1622980368660
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Before running the backtest, make sure that the Trading Parameters node has consistent data. I already prepared everything for you, but take some time and notice that:",
"updated": 1622386208805
"updated": 1622386208805,
"translations": [
{
"language": "DE",
"text": "Bevor du den Backtest ausführst, stelle sicher, dass der Knoten Trading Parameters konsistente Daten hat. Ich habe bereits alles für dich vorbereitet, aber nimm dir etwas Zeit und beachte, dass:",
"updated": 1622980410674
}
]
},
{
"style": "List",
"text": "Session Base Asset is set to 0"
"text": "Session Base Asset is set to 0",
"translations": [
{
"language": "DE",
"text": "Session Base Asset auf 0 eingestellt ist",
"updated": 1622980449763
}
]
},
{
"style": "List",
"text": "Session Quoted Asset is set to 1000 (That is 1000$ USDT in this case)",
"updated": 1622386176926
"updated": 1622386176926,
"translations": [
{
"language": "DE",
"text": "Session Quoted Asset auf 1000 eingestellt ist (das sind in diesem Fall 1000$ USDT)",
"updated": 1622980491671
}
]
},
{
"style": "List",
"text": "Slippage is set to 0 because I'm backtesting small amounts and I can assume orders are filled with no slippage",
"updated": 1614267847410
"updated": 1614267847410,
"translations": [
{
"language": "DE",
"text": "Slippage auf 0 gesetzt ist, da ich kleine Beträge backteste und ich davon ausgehen kann, dass die Aufträge ohne Slippage ausgeführt werden",
"updated": 1622980519600
}
]
},
{
"style": "Important",
"text": "Are you ready? Run the backtest!",
"updated": 1614267899321
"updated": 1614267899321,
"translations": [
{
"language": "DE",
"text": "Bist du bereit? Führe (\"Run\") den Backtest aus!",
"updated": 1622980556540
}
]
}
]
}
@@ -8,17 +8,38 @@
"icon": {
"name": "stop",
"project": "Superalgos"
}
},
"translations": [
{
"language": "DE",
"text": "Zeit sich die Charts anzuschauen!",
"updated": 1622980596813
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "When backtest finishes I stop the whole hierarchy form the Testing Trading Tasks node. Expand the node and click on Stop All.",
"updated": 1614268732305
"updated": 1614268732305,
"translations": [
{
"language": "DE",
"text": "Wenn der Backtest beendet ist, halte ich die gesamte Hierarchie über den Knoten Testing Trading Tasks an. Erweitere den Knoten und klicke auf Stop All.",
"updated": 1622980659088
}
]
},
{
"style": "Success",
"text": "Remember that it's good practice to keep hierarchies collapsed and to stop unuseful tasks to save resources!"
"text": "Remember that it's good practice to keep hierarchies collapsed and to stop unuseful tasks to save resources!",
"translations": [
{
"language": "DE",
"text": "Denk daran, dass es eine gute Praxis ist, Hierarchien zusammengeklappt zu halten und nicht benötigte Aufgaben zu stoppen, um Ressourcen zu sparen!",
"updated": 1622980636929
}
]
},
{
"style": "Text",
@@ -8,13 +8,27 @@
"name": "charting-space",
"project": "Superalgos"
},
"updated": 1614269880685
"updated": 1614269880685,
"translations": [
{
"language": "DE",
"text": "Viel Spaß mit deinem Backtest!",
"updated": 1622980702656
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Now it's time to move to the Charting Space and (if not already running) fire up:",
"updated": 1614269938039
"updated": 1614269938039,
"translations": [
{
"language": "DE",
"text": "Jetzt ist es an der Zeit, in den Charting Space zu wechseln und (falls noch nicht geschehen) starte:",
"updated": 1622980744641
}
]
},
{
"style": "List",
@@ -43,7 +57,14 @@
{
"style": "Success",
"text": "Take your time and explore the visual results. Apply the SMA indicator to the chart and make sure bot has taken position when expected",
"updated": 1614333706446
"updated": 1614333706446,
"translations": [
{
"language": "DE",
"text": "Nimm dir Zeit und erkunde die visuellen Ergebnisse. Wende den SMA-Indikator auf den Chart an und vergewissere dich, dass der Bot die Position zum erwarteten Zeitpunkt eingenommen hat.",
"updated": 1622980791002
}
]
}
]
}
@@ -8,26 +8,67 @@
"icon": {
"name": "hits",
"project": "Superalgos"
}
},
"translations": [
{
"language": "DE",
"text": "Dies ist der letzte Schritt in diesem Tutorial, aber ein erster großer Schritt für dich!",
"updated": 1622980855701,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Now that you have seen how fast and easy is to deploy simple strategies in SA, I leave you with some hints you can explore.",
"updated": 1614270919320
"updated": 1614270919320,
"translations": [
{
"language": "DE",
"text": "Nachdem du nun gesehen hast, wie schnell und einfach es ist, einfache Strategien in SA einzusetzen, lasse ich dich mit einigen Tipps zurück, die du erforschen kannst.",
"updated": 1622980866244,
"style": "Text"
}
]
},
{
"style": "Text",
"text": "Maybe you can add a new indicator and use its properties like an additional filter for the Trigger Stage"
"text": "Maybe you can add a new indicator and use its properties like an additional filter for the Trigger Stage.",
"translations": [
{
"language": "DE",
"text": "Vielleicht kannst du einen neuen Indikator hinzufügen und seine Eigenschaften wie einen zusätzlichen Filter für die Trigger Stage verwenden",
"updated": 1622981671905,
"style": "Text"
}
],
"updated": 1622980962381
},
{
"style": "Text",
"text": "Or you can modify the SL so to have a trailing one istead of being fixed."
"text": "Or you can modify the SL so to have a trailing one istead of being fixed.",
"translations": [
{
"language": "DE",
"text": "Oder du kannst den SL so modifizieren, dass er einen Trailing hat, anstatt fest zu sein.",
"updated": 1622980929319,
"style": "Text"
}
]
},
{
"style": "Note",
"text": "Thank you for your time. You can read a more in depth article here: http://bit.ly/9808usHelloWorld",
"updated": 1614271289324
"updated": 1614271289324,
"translations": [
{
"language": "DE",
"text": "Vielen Dank für deine Zeit. Hier findest du einen ausführlicheren Artikel: http://bit.ly/9808usHelloWorld",
"updated": 1622980916321,
"style": "Note"
}
]
}
]
}