Merge branch 'Superalgos:develop' into develop

This commit is contained in:
B Harrell committed 2021-05-31 06:37:31 -05:00
commit d08fd76f5e
54 files changed
+432 -210

No files matched your search

@@ -0,0 +1,27 @@
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="146.564" height="348.799" transform="matrix(0.83147 0.55557 0 1 73 13)" fill="#9BAAAB"/>
<rect width="146.564" height="348.799" transform="matrix(0.83147 0.55557 0 1 316.137 13)" fill="#9BAAAB"/>
<rect width="146.564" height="348.799" transform="matrix(-0.83147 0.55557 0 1 316.432 13)" fill="#CDD4D5"/>
<path d="M103.5 89L149.5 184" stroke="#F0353D" stroke-width="28"/>
<path d="M160.5 115L88 160" stroke="#F0353D" stroke-width="28"/>
<path d="M118 182.5C84.4995 288 224.5 486 258 212.5C299.5 57.4994 459.5 198.5 388.5 337.5" stroke="#F0353D" stroke-width="13" stroke-dasharray="10 10"/>
<path d="M418.214 495.077C462.222 488.792 496 451.016 496 405.35C496 359.355 461.766 321.365 417.303 315.484C410.517 271.171 367.066 237 314.5 237C261.934 237 218.483 271.171 211.697 315.484C167.234 321.365 133 359.355 133 405.35C133 451.016 166.778 488.792 210.786 495.077V496H418.214V495.077Z" fill="#365558"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M315 496H418.214V495.077C462.222 488.791 496 451.016 496 405.35C496 359.355 461.766 321.365 417.303 315.484C410.538 271.311 367.341 237.217 315 237.001V496Z" fill="#0295AA"/>
<path d="M265.938 439.906H228.953L221.922 461H199.492L237.602 358.625H257.148L295.469 461H273.039L265.938 439.906ZM234.648 422.82H260.242L247.375 384.5L234.648 422.82ZM326.125 424.93V461H305.031V358.625H344.969C352.656 358.625 359.406 360.031 365.219 362.844C371.078 365.656 375.578 369.664 378.719 374.867C381.859 380.023 383.43 385.906 383.43 392.516C383.43 402.547 379.984 410.469 373.094 416.281C366.25 422.047 356.758 424.93 344.617 424.93H326.125ZM326.125 407.844H344.969C350.547 407.844 354.789 406.531 357.695 403.906C360.648 401.281 362.125 397.531 362.125 392.656C362.125 387.641 360.648 383.586 357.695 380.492C354.742 377.398 350.664 375.805 345.461 375.711H326.125V407.844ZM420.414 461H399.32V358.625H420.414V461Z" fill="#E6EAEA"/>
<path d="M30.9668 171.493H20.9668V181.493V210.45H12V220.45V254.537V264.537H20.9668V293.493V303.493H30.9668H119.339H124.603L127.582 299.154L144.668 274.276H174.436H184.436V264.276V255.609H194H204V245.609V229.377V219.377H194H184.436V210.711V200.711H174.436H144.668L127.582 175.832L124.603 171.493H119.339H30.9668Z" fill="#365558" stroke="#2E2E2E" stroke-width="20"/>
<rect width="15" height="34" transform="matrix(-1 0 0 1 37 220.493)" fill="#9BAAAB"/>
<path d="M31 181.493H119.7L139 209.493V237.493V265.493L119.7 293.493H31V181.493Z" fill="#4ACFD9"/>
<rect x="139" y="210.493" width="35" height="15" fill="#FD6A33"/>
<rect x="139" y="229.493" width="55" height="16" fill="#FD6A33"/>
<rect x="139" y="249.493" width="35" height="15" fill="#FD6A33"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.9668 237.247V293.494H119.339L138.569 265.37V237.247L30.9668 237.247Z" fill="#0295AA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M120 293.493H120.335L139.564 265.37V237.246V209.123L120.335 181H120V293.493Z" fill="#365558"/>
<path d="M480.033 171.493H490.033V181.493V210.45H499V220.45V254.537V264.537H490.033V293.493V303.493H480.033H391.661H386.397L383.418 299.154L366.332 274.276H336.564H326.564V264.276V255.609H317H307V245.609V229.377V219.377H317H326.564V210.711V200.711H336.564H366.332L383.418 175.832L386.397 171.493H391.661H480.033Z" fill="#365558" stroke="#2E2E2E" stroke-width="20"/>
<rect x="474" y="220.493" width="15" height="34" fill="#9BAAAB"/>
<path d="M480 181.493H391.3L372 209.493V237.493V265.493L391.3 293.493H480V181.493Z" fill="#4ACFD9"/>
<rect width="35" height="15" transform="matrix(-1 0 0 1 372 210.493)" fill="#FD6A33"/>
<rect width="55" height="16" transform="matrix(-1 0 0 1 372 229.493)" fill="#FD6A33"/>
<rect width="35" height="15" transform="matrix(-1 0 0 1 372 249.493)" fill="#FD6A33"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480.033 237.247V293.494H391.661L372.431 265.37V237.247H480.033Z" fill="#0295AA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M391 293.493H390.665L371.436 265.37V237.246V209.123L390.665 181H391V293.493Z" fill="#365558"/>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@@ -1 +1 @@
{"type":"API Map","name":"Messari","config":"{\n \"codeName\": \"Messari\",\n \"protocol\": \"https\",\n \"hostName\": \"data.messari.io\",\n \"portNumber\": \"\",\n \"path\": \"api\",\n \"millisecondsBetweenCalls\": 4000\n}","project":"Superalgos","apiVersions":[{"type":"API Version","name":"Version 1","config":"{\n \"codeName\": \"v1\"\n}","project":"Superalgos","apiEndpoints":[{"type":"API Endpoint","name":"Get All News","config":"{\n \"codeName\": \"news\"\n}","project":"Superalgos","apiQueryParameters":{"type":"API Query Parameters","name":"New API Query Parameters","config":"{\n \"codeName\": \"\"\n}","project":"Superalgos","apiQueryParameters":[{"type":"API Query Parameter","name":"Page","config":"{\n \"codeName\": \"page\",\n \"isString\": false,\n \"isOptional\": false,\n \"description\": \"Page number, starts at 1. Increment to paginate through results (until result is empty array)\",\n \"isPageNumber\": true\n}","project":"Superalgos","id":"754e2724-36bc-4e4e-94cf-bfba88dadd3b","savedPayload":{"position":{"x":14018.222252113279,"y":10179.489044198583},"targetPosition":{"x":14308,"y":10257.134757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"API Query Parameter","name":"Fields","config":"{\n \"codeName\": \"fields\",\n \"isString\": true,\n \"isOptional\": true,\n \"description\": \"pare down the returned fields (comma , separated, drill down with a slash /)\"\n}","project":"Superalgos","id":"3199c37c-5ecc-47fd-8868-eddaa15fdc59","savedPayload":{"position":{"x":14158,"y":9997.327136594007},"targetPosition":{"x":14308,"y":10257.134757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"API Query Parameter","name":"As Markdown","config":"{\n \"codeName\": \"as-markdown\",\n \"isString\": false,\n \"isOptional\": true,\n \"description\": \"formatting (other than HTML links) is hidden. Use this query param to return content with markdown syntax\"\n}","project":"Superalgos","id":"fa87b1ad-2d0f-4462-85fb-524630e9db7a","savedPayload":{"position":{"x":14385.645713530756,"y":9967.357009842617},"targetPosition":{"x":14308,"y":10257.134757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"03f8b00d-10cf-423d-a654-d8db598c76a9","savedPayload":{"position":{"x":14308,"y":10257.134757729338},"targetPosition":{"x":14458,"y":10516.942378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"apiQueryResponses":{"type":"API Query Responses","name":"New API Query Responses","config":"{\n \"codeName\": \"\"\n}","project":"Superalgos","apiQueryResponses":[{"type":"API Query Response","name":"200 Successful","config":"{\n \"codeName\": \"200\"\n}","project":"Superalgos","apiResponseSchema":{"type":"API Response Schema","name":"New API Response Schema","config":"{\n \"nodePath\": \"apiResponseReceivedObject.data\"\n}","project":"Superalgos","apiResponseFields":{"type":"API Response Field","name":"Root Object","config":"{\n \"codeName\": \"Root-Object\",\n \"fieldType\": \"object\",\n \"descrption\": \"This is the root object of the API response.\"\n}","project":"Superalgos","apiResponseFields":[{"type":"API Response Field","name":"Status","config":"{\n \"codeName\": \"status\",\n \"fieldType\": \"object\",\n \"descrption\": \"object (ApiStatus)\"\n}","project":"Superalgos","apiResponseFields":[{"type":"API Response Field","name":"Enlapsed","config":"{\n \"codeName\": \"enlapsed\",\n \"fieldType\": \"number\",\n \"descrption\": \"\"\n}","project":"Superalgos","apiResponseFields":[],"id":"9c472348-ac24-4567-a36f-8600a1fac914","savedPayload":{"position":{"x":14957.080319710783,"y":9159.037626303341},"targetPosition":{"x":15126.07633712987,"y":9406.90925859814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"API Response Field","name":"Timestamp","config":"{\n \"codeName\": \"timestamp\",\n \"fieldType\": \"date\",\n \"descrption\": \"\"\n}","project":"Superalgos","apiResponseFields":[],"id":"12b796fd-85eb-49b2-a88e-b400f52cc5e9","savedPayload":{"position":{"x":15256.241458865137,"y":9136.618598227415},"targetPosition":{"x":15126.07633712987,"y":9406.90925859814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d45e7d6-8964-449e-8f34-c7f5f4839d54","savedPayload":{"position":{"x":15126.07633712987,"y":9406.9092585Line truncated
{"type":"API Map","name":"Messari","config":"{\n \"codeName\": \"Messari\",\n \"protocol\": \"https\",\n \"hostName\": \"data.messari.io\",\n \"portNumber\": \"\",\n \"path\": \"api\",\n \"millisecondsBetweenCalls\": 4000\n}","project":"Superalgos","apiVersions":[{"type":"API Version","name":"Version 1","config":"{\n \"codeName\": \"v1\"\n}","project":"Superalgos","apiEndpoints":[{"type":"API Endpoint","name":"Get All News","config":"{\n \"codeName\": \"news\"\n}","project":"Superalgos","apiQueryParameters":{"type":"API Query Parameters","name":"New API Query Parameters","config":"{\n \"codeName\": \"\"\n}","project":"Superalgos","apiQueryParameters":[{"type":"API Query Parameter","name":"Page","config":"{\n \"codeName\": \"page\",\n \"isString\": false,\n \"isOptional\": false,\n \"description\": \"Page number, starts at 1. Increment to paginate through results (until result is empty array)\",\n \"isPageNumber\": true\n}","project":"Superalgos","id":"754e2724-36bc-4e4e-94cf-bfba88dadd3b","savedPayload":{"position":{"x":14012.485238430854,"y":10170.798147156756},"targetPosition":{"x":14302.262986317575,"y":10248.443860687512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"API Query Parameter","name":"Fields","config":"{\n \"codeName\": \"fields\",\n \"isString\": true,\n \"isOptional\": true,\n \"description\": \"pare down the returned fields (comma , separated, drill down with a slash /)\"\n}","project":"Superalgos","id":"3199c37c-5ecc-47fd-8868-eddaa15fdc59","savedPayload":{"position":{"x":14152.262986317575,"y":9988.636239552181},"targetPosition":{"x":14302.262986317575,"y":10248.443860687512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"API Query Parameter","name":"As Markdown","config":"{\n \"codeName\": \"as-markdown\",\n \"isString\": false,\n \"isOptional\": true,\n \"description\": \"formatting (other than HTML links) is hidden. Use this query param to return content with markdown syntax\"\n}","project":"Superalgos","id":"fa87b1ad-2d0f-4462-85fb-524630e9db7a","savedPayload":{"position":{"x":14379.90869984833,"y":9958.66611280079},"targetPosition":{"x":14302.262986317575,"y":10248.443860687512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"03f8b00d-10cf-423d-a654-d8db598c76a9","savedPayload":{"position":{"x":14302.262986317575,"y":10248.443860687512},"targetPosition":{"x":14452.262986317575,"y":10508.251481822843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"apiQueryResponses":{"type":"API Query Responses","name":"New API Query Responses","config":"{\n \"codeName\": \"\"\n}","project":"Superalgos","apiQueryResponses":[{"type":"API Query Response","name":"200 Successful","config":"{\n \"codeName\": \"200\"\n}","project":"Superalgos","apiResponseSchema":{"type":"API Response Schema","name":"New API Response Schema","config":"{\n \"nodePath\": \"apiResponseReceivedObject.data\"\n}","project":"Superalgos","apiResponseFields":{"type":"API Response Field","name":"Root Object","config":"{\n \"codeName\": \"Root-Object\",\n \"fieldType\": \"object\",\n \"descrption\": \"This is the root object of the API response.\"\n}","project":"Superalgos","apiResponseFields":[{"type":"API Response Field","name":"Status","config":"{\n \"codeName\": \"status\",\n \"fieldType\": \"object\",\n \"descrption\": \"object (ApiStatus)\"\n}","project":"Superalgos","apiResponseFields":[{"type":"API Response Field","name":"Enlapsed","config":"{\n \"codeName\": \"enlapsed\",\n \"fieldType\": \"number\",\n \"descrption\": \"\"\n}","project":"Superalgos","apiResponseFields":[],"id":"9c472348-ac24-4567-a36f-8600a1fac914","savedPayload":{"position":{"x":14951.343306028359,"y":9150.346729261515},"targetPosition":{"x":15120.339323447446,"y":9398.218361556314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"API Response Field","name":"Timestamp","config":"{\n \"codeName\": \"timestamp\",\n \"fieldType\": \"date\",\n \"descrption\": \"\"\n}","project":"Superalgos","apiResponseFields":[],"id":"12b796fd-85eb-49b2-a88e-b400f52cc5e9","savedPayload":{"position":{"x":15250.504445182713,"y":9127.927701185588},"targetPosition":{"x":15120.339323447446,"y":9398.218361556314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d45e7d6-8964-449e-8f34-Line truncated
@@ -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":"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
@@ -0,0 +1 @@
{"type":"Data Mine","name":"Messari","config":"{\n \"codeName\": \"Messari\"\n}","project":"Superalgos","sensorBots":[],"apiDataFetcherBots":[{"type":"API Data Fetcher Bot","name":"News","config":"{\n \"codeName\": \"News\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Fetching Process","config":"{\n \"codeName\": \"Fetching-Process\",\n \"description\": \"Fetches Data from an API\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"API Data Fetcher Fetching Process\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Single File News","project":"Superalgos","id":"86c094dc-c27d-4c89-8254-90face77eab8","savedPayload":{"position":{"x":14580.807621135331,"y":18002.75},"targetPosition":{"x":14580.807621135331,"y":18302.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Single File","id":"135e76cc-93dc-499c-9825-4546a9da3048"}}}],"outputDatasetFolders":[],"id":"6ae652ed-33d8-48cb-828e-c58137f98a70","savedPayload":{"position":{"x":14580.807621135331,"y":18302.75},"targetPosition":{"x":14580.807621135331,"y":18602.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"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\": \"Self Reference|Market Starting Point|Market Ending Point\"\n}","project":"Superalgos","id":"707cf1ee-d397-40a0-8691-12b3d66b2000","savedPayload":{"position":{"x":14880.807621135331,"y":18083.134757729335},"targetPosition":{"x":14730.807621135331,"y":18342.942378864667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"e16040d4-96c9-4ab9-86fb-39d81db42b3f"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"4b6de2ac-ec9f-4aed-8c38-0c5a08b85e5d","savedPayload":{"position":{"x":14730.807621135331,"y":18342.942378864667},"targetPosition":{"x":14580.807621135331,"y":18602.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"e16040d4-96c9-4ab9-86fb-39d81db42b3f","savedPayload":{"position":{"x":14840.615242270662,"y":18452.75},"targetPosition":{"x":14580.807621135331,"y":18602.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"ba31d68b-8788-44e5-9cdb-dc05b03814ad","savedPayload":{"position":{"x":14880.807621135331,"y":18602.75},"targetPosition":{"x":14580.807621135331,"y":18602.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"20e4520e-1532-4e92-8f9c-bb52f929e793","savedPayload":{"position":{"x":14840.615242270662,"y":18752.75},"targetPosition":{"x":14580.807621135331,"y":18602.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"051353f4-6e0b-4641-bd7d-b0f621f64ccb","savedPayload":{"position":{"x":14580.807621135331,"y":18602.75},"targetPosition":{"x":14321,"y":18752.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"News","config":"{\n \"codeName\": \"News\",\n \"singularVariableName\": \"new\",\n \"pluralVariableName\": \"news\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Single File","config":"{\n \"codeName\": \"Single-File\",\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.json\",\n \"validTimeFrames\": [\n \"Any Time Frame\"\n ]\n}","project":"Superalgos","id":"135e76cc-93dc-499c-9825-4546a9da3048","savedPayload":{"position":{"x":14878.241079547473,"y":18941.907857666014},"targetPosition":{"x":14580.807621135331,"y":18902.75},"floatingObLine truncated
@@ -1 +1 @@
{"type":"Workspace","name":"API-Data-Fetcher-Bot-Demo","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{\n \"host\": \"localhost\",\n \"webPort\": \"34248\",\n \"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Candle Channels","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candle Channels","config":"{ \n\"parameter1\": \"Value for parameter1 defined at the Product Definition\"\n}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Time-Frame-Market","project":"Superalgos","id":"aadb5194-5dce-48d9-af13-f4b4709d5467","savedPayload":{"position":{"x":25067.356993272086,"y":30629.11115747996},"targetPosition":{"x":25013.356993272086,"y":30577.11115747996},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Time-Frame-Daily","project":"Superalgos","id":"1957e62b-09bf-4228-b9e2-b4d4dbcf318d","savedPayload":{"position":{"x":25051.356993272086,"y":30590.11115747996},"targetPosition":{"x":25013.356993272086,"y":30577.11115747996},"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":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"e105597f-9820-4f46-969f-25b54b6d9881","savedPayload":{"position":{"x":25013.356993272086,"y":30577.11115747996},"targetPosition":{"x":25112.356993272086,"y":30515.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05036d44-8a85-4b4f-a836-f92acb4685ce","savedPayload":{"position":{"x":25112.356993272086,"y":30515.11115747996},"targetPosition":{"x":25072.356993272086,"y":30537.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{ \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":"98162878-d377-4a40-98f2-9ce564e26e1d","savedPayload":{"position":{"x":25168.356993272086,"y":30567.11115747996},"targetPosition":{"x":25228.356993272086,"y":30531.11115747996},"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":"ede3c7c1-ba34-46cd-9a74-7c399598a544","savedPayload":{"position":{"x":25314.356993272086,"y":30463.11115747996},"targetPosition":{"x":25228.356993272086,"y":30531.11115747996},"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":"125c7030-7222-458d-b110-ad4992318b31","savedPayload":{"position":{"x":25228.356993272086,"y":30531.11115747996},"targetPosition":{"x":25142.356993272086,"y":30519.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e0d68f6f-b086-4bf8-8623-93e04302de88","savedPayload":{"position":{"x":25142.356993272086,"y":30519.11115747996},"targetPosition":{"x":25072.356993272086,"y":30537.11115747996},"floatingObject":{"isPinned":false,"isFrozen":fLine truncated
{"type":"Workspace","name":"API-Data-Fetcher-Bot-Demo","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":"Candle Channels","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candle Channels","config":"{ \n\"parameter1\": \"Value for parameter1 defined at the Product Definition\"\n}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Time-Frame-Market","project":"Superalgos","id":"9abbcecc-9b28-492c-a0b2-83526d12b451","savedPayload":{"position":{"x":24659.356993272086,"y":30668.11115747996},"targetPosition":{"x":24748.356993272086,"y":30674.11115747996},"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":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Time-Frame-Daily","project":"Superalgos","id":"d8ae0748-ea08-4248-a235-c4e340d28eb4","savedPayload":{"position":{"x":24811.356993272086,"y":30645.11115747996},"targetPosition":{"x":24748.356993272086,"y":30674.11115747996},"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":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"159e876a-c239-4798-9232-d1a1e5d8a8bc","savedPayload":{"position":{"x":24748.356993272086,"y":30674.11115747996},"targetPosition":{"x":24776.356993272086,"y":30627.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d1d36fab-12cb-4fed-8e07-5f030b285d4f","savedPayload":{"position":{"x":24776.356993272086,"y":30627.11115747996},"targetPosition":{"x":24833.356993272086,"y":30707.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{ \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":"31080f4e-ff13-440a-b4a8-e97bf7f06208","savedPayload":{"position":{"x":24966.356993272086,"y":30659.11115747996},"targetPosition":{"x":24874.356993272086,"y":30655.11115747996},"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":"b3dcbd06-f4db-4a32-a809-ea0a6e57a269","savedPayload":{"position":{"x":24888.356993272086,"y":30641.11115747996},"targetPosition":{"x":24874.356993272086,"y":30655.11115747996},"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":"ca7b97ef-cd47-4dd7-afe5-06bdc0341bbd","savedPayload":{"position":{"x":24874.356993272086,"y":30655.11115747996},"targetPosition":{"x":24922.356993272086,"y":30641.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1bc1a7fc-b04e-4ba5-b417-31746b75eb0f","savedPayload":{"position":{"x":24922.356993272086,"y":30641.11115747996},"targetPosition":{"x":24833.356993272086,"y":30707.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"iLine 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":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"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,"angleToPLine 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":"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
@@ -0,0 +1 @@
{"type":"Workspace","name":"Hello World Tutorial","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":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"Simple Moving Average (SMA)","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Simple Moving Average (SMA)","config":"{ \n\"parameter1\": \"Value for parameter1 defined at the Product Definition\"\n}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Time-Frame-Market","project":"Superalgos","id":"d10b86ae-85d6-447e-aa00-7f34881a9732","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":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Time-Frame-Daily","project":"Superalgos","id":"3c896ce2-52b2-4d9a-974b-4f012b431719","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":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"0f0c4a8d-6def-4e48-88fb-b6156a849861","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":"785e3ae9-0787-413e-b54a-36ed33d465c5","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":"253bc718-ddf9-45e2-a9df-9eccbf55e119","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":"a90ffb4e-2a2f-4cfa-b5e2-dd66777a0516","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":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"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":"b6ffccf3-d9ec-410e-a08e-d7a375250c82","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":"21095299-7c97-4480-af61-f16d3a4335e2","savedPayload":{"position":{"x":24339.356993272086,"y":28868.073051803298},"targetPosition":{"x":24489.356993272086,"y":29127.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToPareLine truncated
@@ -1 +0,0 @@
{"type":"Workspace","name":"Hello World Tutorial","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"Simple Moving Average (SMA)","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Simple Moving Average (SMA)","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Time-Frame-Market","project":"Superalgos","id":"fde9aeb6-2b65-4ba5-a8b3-07f2b189a9ec","savedPayload":{"position":{"x":23969.74175100142,"y":29687.688294073963},"targetPosition":{"x":24119.74175100142,"y":29687.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Time-Frame-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Time-Frame-Daily","project":"Superalgos","id":"17d24742-6026-4fe5-b400-69df5a057aa1","savedPayload":{"position":{"x":24044.74175100142,"y":29557.784483506297},"targetPosition":{"x":24119.74175100142,"y":29687.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Time-Frame-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"a773898a-8b8f-4654-b907-a4f0b988d59e","savedPayload":{"position":{"x":24119.74175100142,"y":29687.688294073963},"targetPosition":{"x":24249.645561569087,"y":29762.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a98d1697-98c9-44dc-a4b2-b777917ca292","savedPayload":{"position":{"x":24249.645561569087,"y":29762.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":"802f1ee2-1dba-4999-8b29-068b68aee9ef","savedPayload":{"position":{"x":24379.549372136753,"y":29837.688294073963},"targetPosition":{"x":24509.45318270442,"y":29912.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d24c01eb-3d21-430e-a965-cbf645bb7853","savedPayload":{"position":{"x":24509.45318270442,"y":29912.688294073963},"targetPosition":{"x":24639.356993272086,"y":29987.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{\n \"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"9de8a5c8-7c2e-4625-afa4-176c43777eb3","savedPayload":{"position":{"x":24414.356993272086,"y":29297.976862370964},"targetPosition":{"x":24489.356993272086,"y":29427.88067293863},"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":"d96308e3-a9ae-4a87-ad7c-cf7948fe0939","savedPayload":{"position":{"x":24489.356993272086,"y":29427.88067293863},"targetPosition":{"x":24564.356993272086,"y":29557.784483506297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"Line truncated
@@ -9,7 +9,7 @@
"compatibleTypes": "->Plotter Panel->"
},
"initialValues": {
"config": "{\n \"valueDecimals\": 2\n}"
"config": "{\n \"valueDecimals\": 10\n}"
},
"childrenNodesProperties": [
{
@@ -10,6 +10,7 @@
"compatibleTypes": "->Polygon->"
},
"title": [
"Use Reference Parent Parent",
"Use Reference Parent"
],
"menuItems": [
@@ -1,8 +1,8 @@
{
"type": "Community Data Mines",
"definition": {
"text": "The Community Data Mines books is a compendium of data mines&mdash;and their indicators&mdash;contributed by the Community.",
"updated": 1611686533662
"text": "The Community Data Mines book is a compendium of data mines—and their indicators—contributed by the Community.",
"updated": 1622378343288
},
"paragraphs": [
{
@@ -12,7 +12,8 @@
},
{
"style": "Subtitle",
"text": "Getting Started"
"text": "Getting Started Tutorials",
"updated": 1622390292753
},
{
"style": "List",
@@ -43,6 +43,11 @@
"style": "Text",
"text": "For example, in the open stage, you probably defined the target size as a function of the capital allocated to the trading system. In the close stage, you will likely want to define the target size as a function of the size filled, that is, the amount of the orders placed that was filled during the open stage."
},
{
"style": "Text",
"text": "In the event that the target size of the asset to be traded in Close Stage is equal to zero then Close Stage will close as will the currently running strategy. For example: Suppose the Open Stage was to trade x amount of quoted asset at y price via a limit order. But instead price moved in the opposite direction and to the point that Open Stage closed prior to the accumulation of any of the Base Asset which was to be traded via the Close Stage. In that scenario Close Stage would not take any action and would Close the current instance of the Strategy and the system would resume polling for another Trigger On event.",
"updated": 1622300970890
},
{
"style": "Include",
"text": "Superalgos->Topic->Why My Stage is not Closing?->The Stage Does Not Close",
@@ -51,6 +51,25 @@
{
"style": "List",
"text": "timeFrames sets the name and path of the file indicating which time frames shall be filtered when the users sets a time frames filter."
},
{
"style": "Subtitle",
"text": "Multi-Time-Frame-Market"
},
{
"style": "Json",
"text": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n}",
"updated": 1622230173671
},
{
"style": "Subtitle",
"text": "Multi-Time-Frame-Daily",
"updated": 1622230146222
},
{
"style": "Json",
"text": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n}",
"updated": 1622230187172
}
]
}
@@ -23,6 +23,26 @@
{
"style": "Text",
"text": "Storing objects with named properties in the JSON format would be inappropriate as labels would repeat over and over, creating a ridiculous amount of unnecessary information. However, storing arrays in the JSON standard facilitates the handling of files in the context of JavaScript and Node.JS."
},
{
"style": "Block",
"text": "Record Properties"
},
{
"style": "Title",
"text": "What are the Record Properties used for?"
},
{
"style": "Text",
"text": "In general this is the mechanism to define what information is going to be available to the consumers of data of this product. "
},
{
"style": "Text",
"text": "When properties don't have a Formula, they define the format of the file that stores this data on disk. These record properties defines, the data type (string, number, etc), and in which order the data is saved. At the file there are no headers, just the data, because the header information is available here, for any process writing or reading the data from disk."
},
{
"style": "Text",
"text": "The formulas nodes there are used to expand the record definition adding fields that are not actually going to be saved on disk, to minimize space used, and they are going to be calculated at runtime. This allows proceeses that consume this data to have ell the fields available at runtime even though some were not actually saved on disk."
}
]
}
@@ -5,10 +5,19 @@
"updated": 1609788711861
},
"paragraphs": [
{
"style": "Include",
"text": "Superalgos->Node->Record Definition->Record Properties",
"updated": 1622292888747
},
{
"style": "Title",
"text": "How is a Record Formula used?",
"updated": 1622292907320
},
{
"style": "Text",
"text": "Formulas may use both the record and the variable objects made available by the calculations procedure and the data building procedure (see procedure loop).",
"updated": 1609788725463
"text": "Formulas may use both the record and the variable objects made available by the calculations procedure and the data building procedure (see procedure loop)."
},
{
"style": "Text",
@@ -8,6 +8,11 @@
"style": "Block",
"text": "Content"
},
{
"style": "Include",
"text": "Superalgos->Node->Record Definition->Record Properties",
"updated": 1622292794198
},
{
"style": "Text",
"text": "Records may have as many properties as required."
@@ -1,8 +1,8 @@
{
"type": "User Defined Code",
"definition": {
"text": "You can use this node to inject your own executable code into the the Trading System. The exact moment when this code will be run depends on its config properties. From your code you can access the Trading Engine, read and modify it's values, modifying the standar behaviour of the Trading Bot.",
"updated": 1621988586103
"text": "You can use this node to inject your own executable code into the the Trading System. The exact moment when this code will be run depends on its config properties. From your code you can access the Trading Engine, read and modify it's values, modifying the standard behaviour of the Trading Bot.",
"updated": 1622299982600
},
"paragraphs": [
{
@@ -0,0 +1,14 @@
{
"type": "User Defined Variable",
"definition": {
"text": "The User-Defined-Variable is a mutable storage container for whatever arbitrary data the user may want to manage while running a Trading System.",
"updated": 1622299578764
},
"paragraphs": [
{
"style": "Text",
"text": "These variables can be easily set or get by using the Copy Node Path in the node's popup modal.",
"updated": 1622299861437
}
]
}
@@ -0,0 +1,33 @@
{
"type": "User Defined Variables",
"definition": {
"text": "The User Defined Variables node structure is an unused area of the Trading Engine users can access from within their Trading System to store data.",
"updated": 1622234154032
},
"paragraphs": [
{
"style": "Text",
"text": "<h4>Overview</h4>",
"updated": 1622299369556
},
{
"style": "Text",
"text": "Oftentimes, when building a strategy, the need for a place to store some data may arise. The User-Defined-Variables nodes are the correct place to do this. The children nodes, (User Defined variable nodes), of this node are unused by the base code of the Superalgos processes thus the data placed inside these variables will remain unchanged and available for the duration of the episode."
},
{
"style": "Text",
"text": "<h4>Additional Info</h4>",
"updated": 1622250099965
},
{
"style": "Text",
"text": "- Persistence: It should be noted that these variables will persist throughout the System's episode; not just at the stage or strategy layer from which they are set.",
"updated": 1622299441071
},
{
"style": "Text",
"text": "- State: A user defined variable is mutable.",
"updated": 1622250209793
}
]
}
@@ -12,6 +12,11 @@
"text": "Weak-hands Buster was released in the Superalgos Community Telegram group in August 2019 and has been trading live since. An evolution of the system is currently available as version 2. This page explains the trading system and analyzes its performance.",
"updated": 1611675468833
},
{
"style": "Important",
"text": "Since the release of this strategy, the structure of the BTC-USDT market changed dramatically, rendering this Trading System unusable. The issue is that the system implements rigid volatility filters. The current environment shows much higher volatility than in the past, preventing the strategies from trading. At this point, you may use this system as a demo only, backtesting ranges before 2021. If you wish to experiment and revise this system, you may try removing the volatility filters and implementing new ones, if desired.",
"updated": 1622379090325
},
{
"style": "Text",
"text": "The trading system conforms to the Superalgos Trading Protocol, therefore, it may function as a fully automated trading system. People not interested in trading automation may still obtain the strategy’s rules (situations, conditions, and formulas) from the design space and use the set of rules as they see fit."
@@ -12,6 +12,10 @@
"text": "BB Top Bounce was released in May 2020. This page explains the trading system and analyzes its performance.",
"updated": 1611678265942
},
{
"style": "Important",
"text": "Since the release of this strategy, the structure of the BTC-USDT market changed dramatically, rendering this Trading System unusable. The issue is that the system implements rigid volatility filters. The current environment shows much higher volatility than in the past, preventing the strategies from trading. At this point, you may use this system as a demo only, backtesting ranges before 2021. If you wish to experiment and revise this system, you may try removing the volatility filters and implementing new ones, if desired."
},
{
"style": "Text",
"text": "The trading system conforms to the Superalgos Trading Protocol, therefore, it may function as a fully automated trading system. People not interested in trading automation may still obtain the strategy’s rules (situations, conditions, and formulas) from the design space and use the set of rules as they see fit."
@@ -1,7 +1,7 @@
{
"topic": "Community Workspaces",
"pageNumber": "2",
"type": "Getting Started Plugin Workspace",
"type": "Getting Started Tutorials Plugin Workspace",
"definition": {
"text": "This workspace is the first point of contact with Superalgos. It's purpose is to get new users familiar with all the basic aspects of Superalgos.",
"updated": 1616145473343
@@ -36,7 +36,7 @@
},
{
"style": "List",
"text": "@julian-molina",
"text": "@julian-molina (Telegram)",
"updated": 1616151219045
}
]
@@ -0,0 +1,20 @@
{
"topic": "Frequently Asked Questions",
"pageNumber": "2",
"type": "How does the system handle changes to trading system during live trading?",
"definition": {
"text": "You need to restart the Trading Session and sometimes the Task in order for the Bot to get the new definitions.",
"updated": 1622293227672
},
"paragraphs": [
{
"style": "Text",
"text": "Users cannot change the definitions and feed them to a running bot in real time. If the definitions are at the Trading System level, or the Session Parameters level, you can change them and they will be sent to the running Task the next time you stop and run the Trading Session again.",
"updated": 1622293262444
},
{
"style": "Text",
"text": "It the definitions are at the Task level or upwards, like a change of market, you will need to stop the Task and run it again in order to be recognized."
}
]
}
@@ -13,20 +13,22 @@
{
"language": "IT",
"text": "Clicca il pulsante Help nel menu dei Trading Parameters per accedere alla pagina Docs del nodo. Ti mostrerò una cosa...",
"updated": 1619500388726
"updated": 1619500388726,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Callout",
"text": "Scroll the page all the way to the bottom until you find the Trading Parameters Attaching Rules title.",
"updated": 1615583276420,
"text": "Scroll the page all the way to the bottom until you find the \"Trading Parameters Attaching Rules\" title.",
"updated": 1622372858654,
"translations": [
{
"language": "IT",
"text": "Scorri la pagina fino in fondo, finchè trovi il titolo \"Trading Parameters Attaching Rules\"!",
"updated": 1619500470210
"updated": 1619500470210,
"style": "Callout"
}
]
},
@@ -38,7 +40,8 @@
{
"language": "IT",
"text": "Ogni nodo può essere attaccato solo a certi tipi di nodo. Questi criteri sono elencati nella pagina Docs di ogni nodo.",
"updated": 1619500530342
"updated": 1619500530342,
"style": "Text"
}
]
},
@@ -50,7 +53,8 @@
{
"language": "IT",
"text": "Quando più nodi possono accettare la connessione, ogni candidato mostra un cerchio grigio. Solo il candidato più vicino al nodo da collegare sarà evidenziato in arancione.",
"updated": 1619500597194
"updated": 1619500597194,
"style": "Success"
}
]
}
@@ -13,20 +13,22 @@
{
"language": "IT",
"text": "A un certo punto, dovrai stabilire tu una reference con un nodo. Quindi tanto vale imparare subito come si fa!",
"updated": 1619501421155
"updated": 1619501421155,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Callout",
"text": "Click the delink button on the menu of the Trading System Reference node!",
"updated": 1615806300267,
"text": "Double-click the delink button on the menu of the Trading System Reference node!",
"updated": 1622373319578,
"translations": [
{
"language": "IT",
"text": "Clicca sul bottone \"delink\" nel menù del nodo Trading System Reference!",
"updated": 1619501451689
"updated": 1619501451689,
"style": "Callout"
}
]
},
@@ -38,7 +40,8 @@
{
"language": "IT",
"text": "Hai rotto la reference! Ma non preoccuparti...la ricreeremo nei prossimi step!",
"updated": 1619501479311
"updated": 1619501479311,
"style": "Note"
}
]
},
@@ -50,7 +53,8 @@
{
"language": "IT",
"text": "Per stabilire una reference, segui lo stesso processo usato per collegare un nodo: clicca con il tasto destro sul nodo da cui la reference avrà origine, trascinala vicino al nodo con cui vuoi stabilire il collegamento e rilascia quando vedi un anello arancione!",
"updated": 1619501669049
"updated": 1619501669049,
"style": "Text"
}
]
},
@@ -13,7 +13,8 @@
{
"language": "IT",
"text": "I Clones (cloni) si differenziano dai backup dal fatto che sono progettati per replicare strutture di dati in modo che la copia sia uguale all'originale.",
"updated": 1619545781267
"updated": 1619545781267,
"style": "Definition"
}
]
},
@@ -26,7 +27,8 @@
{
"language": "IT",
"text": "Leggi attentamente questa pagina!",
"updated": 1619545792048
"updated": 1619545792048,
"style": "Callout"
}
]
},
@@ -38,7 +40,8 @@
{
"language": "IT",
"text": "In sintesi:",
"updated": 1619545801000
"updated": 1619545801000,
"style": "Text"
}
]
},
@@ -50,7 +53,8 @@
{
"language": "IT",
"text": "Il comportamento dei cloni <b>non</b> varia in base alla presenza o meno dell'originale al momento del ripristino.",
"updated": 1619546165377
"updated": 1619546165377,
"style": "List"
}
]
},
@@ -61,19 +65,21 @@
{
"language": "IT",
"text": "Le references in ingresso vengono sempre perse.",
"updated": 1619545955251
"updated": 1619545955251,
"style": "List"
}
]
},
{
"style": "Success",
"text": "Feel free to take the time to test the Clones feature on your own! We'll move on to other topics without further due!",
"updated": 1615884678255,
"text": "Feel free to take the time to test the Clones feature on your own! We'll move on to other topics without further ado!",
"updated": 1622374462370,
"translations": [
{
"language": "IT",
"text": "Prenditi pure del tempo per testare la funzionalità dei cloni! Poi ci muoveremo ad altri argomenti!",
"updated": 1619546030194
"updated": 1619546030194,
"style": "Success"
}
]
}
@@ -13,20 +13,22 @@
{
"language": "IT",
"text": "Le Shares sono come i Backups, ma dal file vengono rimossi i dati personali e sensibili!",
"updated": 1619546242891
"updated": 1619546242891,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Get used to share Shares! This good practice will help you avoid dangerous mistakes in the future!",
"updated": 1617037960260,
"text": "Get used to sharing Shares! This good practice will help you avoid dangerous mistakes in the future!",
"updated": 1622374504966,
"translations": [
{
"language": "IT",
"text": "Abituati al loro utilizzo! È una buona pratica per evitare possibili errori pericolosi in futuro!",
"updated": 1619546289258
"updated": 1619546289258,
"style": "Text"
}
]
},
@@ -37,7 +39,8 @@
{
"language": "IT",
"text": "Leggi la pagina sulle Shares per maggiori info!",
"updated": 1619546300806
"updated": 1619546300806,
"style": "Callout"
}
]
},
@@ -48,7 +51,8 @@
{
"language": "IT",
"text": "Quando vuoi condividere il tuo lavoro, non condividere mai i tuoi Workspace o Backups. Questi file possono contenere informazioni sensibili, come la tua Exchange Account Key. Piuttosto, condividi le tue Shares!",
"updated": 1619546375019
"updated": 1619546375019,
"style": "Warning"
}
]
}
@@ -13,7 +13,8 @@
{
"language": "IT",
"text": "Puoi vedere il Workspace come il palco di un teatro. È il luogo dove qualcosa andrà in scena!",
"updated": 1619546463150
"updated": 1619546463150,
"style": "Definition"
}
]
},
@@ -26,20 +27,23 @@
{
"language": "IT",
"text": "Puoi configurare quanti workspace vuoi, ognuno per uno specifico utilizzo. Per esempio:",
"updated": 1619546502168
"updated": 1619546502168,
"style": "Text"
}
]
},
{
"style": "List",
"text": "You may have a workspace to build a Trading Sytem that will need specific indicators from a specific Data Mine.",
"text": "You may have a workspace to build a Trading System that will need specific indicators from a specific Data Mine.",
"translations": [
{
"language": "IT",
"text": "Puoi avere un workspace per costruire un Trading System che ha bisogno di specifici indicatori da specifici Data Mine.",
"updated": 1619546574933
"updated": 1619546574933,
"style": "List"
}
]
],
"updated": 1622374580811
},
{
"style": "List",
@@ -49,7 +53,8 @@
{
"language": "IT",
"text": "Puoi avere un altro workspace con tutti gli indicatori disponibili così da studiare come funziona ognuno di essi.",
"updated": 1619546609509
"updated": 1619546609509,
"style": "List"
}
]
},
@@ -61,7 +66,8 @@
{
"language": "IT",
"text": "Leggi questa pagina per imparare le basi su come lavorare con i workspaces...",
"updated": 1619546636057
"updated": 1619546636057,
"style": "Callout"
}
]
}
@@ -13,7 +13,8 @@
{
"language": "IT",
"text": "Apri il File Explorer del tuo computer e cerca i seguenti path relativi alla cartella root di Superalgos...",
"updated": 1619553622852
"updated": 1619553622852,
"style": "Definition"
}
]
},
@@ -26,19 +27,21 @@
{
"language": "IT",
"text": "\\My-Workspaces",
"updated": 1619553626181
"updated": 1619553626181,
"style": "Json"
}
]
},
{
"style": "List",
"text": "In this folder, you will find a file named Getting Started.json. This is the current workspace; the one you are using at this moment. Everything you have been doing lately has been stored in this file.",
"updated": 1615906276410,
"text": "In this folder, you will find a file named Getting Started Tutorials.json. This is the current workspace; the one you are using at this moment. Everything you have been doing lately has been stored here.",
"updated": 1622374674340,
"translations": [
{
"language": "IT",
"text": "In questa cartella troverai un file chiamato Getting Started.json. È il workspace che stai usando in questo momento! Tutto ciò che hai fatto finora è salvato su questo file.",
"updated": 1619553718618
"updated": 1619553718618,
"style": "List"
}
]
},
@@ -48,13 +51,14 @@
},
{
"style": "List",
"text": "In this folder, you will find Plugin Workspaces shipping with Superalgos. You may want to read the Plugin Workspaces topic in the Docs to learn what each of them is about!",
"updated": 1616259823223,
"text": "In this folder, you will find Plugin Workspaces shipping with Superalgos. You may want to read the \"Community Workspaces\" topic in the Docs to learn what each of them is about!",
"updated": 1622375468421,
"translations": [
{
"language": "IT",
"text": "Qui troverai i Plugin Workspaces originali di Superalgos. Per imparare cosa fa ognuno di essi, leggi il relativo topic nella documentazione!",
"updated": 1619553810915
"updated": 1619553810915,
"style": "List"
}
]
},
@@ -3,17 +3,18 @@
"pageNumber": 40,
"type": "Tutorial Step - The Current Workspace",
"definition": {
"text": "The current workspace is the one you are using at any point.",
"text": "The current workspace is the User Workspace you are using at any point.",
"icon": {
"name": "workspace",
"project": "Superalgos"
},
"updated": 1615906908608,
"updated": 1622375537282,
"translations": [
{
"language": "IT",
"text": "Il workspace corrente è quello in uso in un dato momento.",
"updated": 1619553876743
"updated": 1619553876743,
"style": "Definition"
}
]
},
@@ -26,19 +27,21 @@
{
"language": "IT",
"text": "Se chiudi e riapri l'app, o aggiorni la UI, il sistema carica l'ultimo workspace utilizzato.",
"updated": 1619553925670
"updated": 1619553925670,
"style": "Text"
}
]
},
{
"style": "Callout",
"text": "Go to the menu of the Workspace node, double-click on the Getting Started label and change the name of the workspace to Basic Education.",
"updated": 1615907154715,
"text": "Access the menu of the Workspace node, double-click on the \"Getting Started Tutorials\" label and change it to \"Basic Education\".",
"updated": 1622375773294,
"translations": [
{
"language": "IT",
"text": "Vai al menù del nodo Workspace, fai doppio click sul label Getting Started e cambia il nome del workspace in \"Basic Education\".",
"updated": 1619553975961
"updated": 1619553975961,
"style": "Callout"
}
]
},
@@ -50,7 +53,8 @@
{
"language": "IT",
"text": "Poi premi Ctrl + Shift + Alt + Key-S",
"updated": 1619553982192
"updated": 1619553982192,
"style": "Text"
}
]
},
@@ -62,7 +66,8 @@
{
"language": "IT",
"text": "Hai creato un workspace! Vai alla cartella My-Workspaces e verifica che il nuovo file sia là.",
"updated": 1619554083035
"updated": 1619554083035,
"style": "Success"
}
]
}
@@ -13,7 +13,8 @@
{
"language": "IT",
"text": "Il nodo Plugin File Position determina dove sarà posizionato il nodo nel workspace!",
"updated": 1619554715666
"updated": 1619554715666,
"style": "Definition"
}
]
},
@@ -26,7 +27,8 @@
{
"language": "IT",
"text": "Ecco perchè trovi il nodo Trading System sopra il nodo Plugin File Position!",
"updated": 1619554752815
"updated": 1619554752815,
"style": "Text"
}
]
},
@@ -38,19 +40,21 @@
{
"language": "IT",
"text": "Se cancelli il nodo Trading System, ricomparirà la prossima volta che ricarichi il workspace. I Plugins sono caricati dal file plugin ogni volta che il workspace viene caricato!",
"updated": 1619554795779
"updated": 1619554795779,
"style": "Success"
}
]
},
{
"style": "Text",
"text": "Feel free to try it! If so you wish, you may delete the Trading System node and refresh the page. Bear in mind that you will need to find the Basic Education tutorial and click Resume on the menu to continue!",
"updated": 1615921187621,
"text": "Feel free to try it! If so you wish, you may delete the Trading System node and refresh the page. Bear in mind that you will need to find the Basic Education Tutorial and click Resume on the menu to continue!",
"updated": 1622376059637,
"translations": [
{
"language": "IT",
"text": "Prova, se vuoi! Puoi anche cancellare il nodo Trading System e aggiornare la pagina. Tieni a mente che per continuare da qui dovrai cercare il Basic Education Tutorial e cliccare Resume sul menù!",
"updated": 1619554844566
"updated": 1619554844566,
"style": "Text"
}
]
}
@@ -13,7 +13,8 @@
{
"language": "IT",
"text": "Per inserire un plugin nel Workspace devi selezionare l' opzione per aggiungere i plugins mancanti sul nodo del tipo corrispondente!",
"updated": 1619589885057
"updated": 1619589885057,
"style": "Definition"
}
]
},
@@ -26,19 +27,21 @@
{
"language": "IT",
"text": "Provaci! Seleziona Add Missing Trading Systems nel nodo Plugin Trading Systems!",
"updated": 1619589922157
"updated": 1619589922157,
"style": "Callout"
}
]
},
{
"style": "Text",
"text": "New Plugin File nodes are created for every plugin in the \\Plugins\\Trading-Systems folder! You may delete the Plugin File nodes you don't need and keep the ones you do need! Now you may pin the Plugin File Position node where you wish to place the actual plugin data structure!",
"updated": 1615927372538,
"text": "New Plugin File nodes are created for every plugin in \\Plugins\\Trading-Systems. You may delete the Plugin File nodes you don't need and keep the ones you do need! Then, you may add and pin the Plugin File Position node where you wish to place the actual plugin!",
"updated": 1622376327556,
"translations": [
{
"language": "IT",
"text": "Per ogni plugin nella cartella \\Plugins\\Trading-Systems, viene creato un nodo Plugin File! Cancella i nodi che non ti servono, e magari fissare il nodo Plugin File Position nel punto in cui vuoi piazzare la struttura!",
"updated": 1619590168274
"updated": 1619590168274,
"style": "Text"
}
]
},
@@ -50,7 +53,8 @@
{
"language": "IT",
"text": "I Plugins verranno riaggiunti la prossima volta che carichi il workspace.",
"updated": 1619590143992
"updated": 1619590143992,
"style": "Success"
}
]
}
@@ -13,32 +13,35 @@
{
"language": "IT",
"text": "Mettiamo che sei uno sviluppatore che testa un nuovo exchange, e vuoi modificare il Sensor Bot introducendo un nuovo parametro.",
"updated": 1619590703521
"updated": 1619590703521,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "The Sensor Bot is part of the Masters Data Mine, which is usually included as a plugin in most plugin workspaces. In such a case, you must proceed like in the previous case: delete the Plugin File node corresponding to the Masters data mine and restore the data mine file from the Plugins\\Data-Mines folder as if it was a backup.",
"updated": 1615997651482,
"text": "The Sensor Bot is part of the Candles Data Mine, which is usually included as a plugin in most plugin workspaces. In such a case, you must proceed like in the previous case: delete the Plugin File node corresponding to the Candles data mine and restore the data mine file from the Plugins\\Data-Mines folder as if it was a backup.",
"updated": 1622377634945,
"translations": [
{
"language": "IT",
"text": "Quel bot è parte del Master Data Mine, che è incluso come plugin nella maggior parte dei plugin workspace. In questo caso, procedi come nel caso precedente: cancella il nodo Plugin File del Mastart Data Mine e ripristina il file dalla cartella Plugins\\Data-Mines come fosse un Backup.",
"updated": 1619590793878
"updated": 1619590793878,
"style": "Text"
}
]
},
{
"style": "Success",
"text": "Once you finish, take a backup of the modified Masters Data Mine node and use the backup file to replace the Masters plugin file! Make sure you give it the same name! Then, submit a PR to contribute the improvements on the bot!",
"updated": 1615998024660,
"text": "Once you finish, take a backup of the modified Candles Data Mine node and use the backup file to replace the Candles plugin file! Make sure you give it the same name! Then, submit a PR to contribute the improvements on the bot!",
"updated": 1622377657281,
"translations": [
{
"language": "IT",
"text": "Una volta finito, fai un backup del nuovo nodo Masters Data Mine e usalo per rimpiazzare il plugin file Masters! Assicurati di dargli lo stesso nome. Poi, apri una Pull Request per contribuire al miglioramento del bot!",
"updated": 1619590866081
"updated": 1619590866081,
"style": "Success"
}
]
}
@@ -13,7 +13,8 @@
{
"language": "IT",
"text": "Puoi lavorare con ogni market presente sull'exchange! Dai un'occhiata al setup del nodo Exchange Markets.",
"updated": 1619591894634
"updated": 1619591894634,
"style": "Definition"
}
]
},
@@ -26,19 +27,21 @@
{
"language": "IT",
"text": "Non tratterò la cosa nel dettaglio, perchè ci penserà il tutorial Install a New Market Tutorial nel Tested Exchanges Plugin Workspace. Voglio solo dirti quanto sia facile!",
"updated": 1619591965876
"updated": 1619591965876,
"style": "Text"
}
]
},
{
"style": "Callout",
"text": "Take a look at the menu of the BTC/USDT Market! Notice the Install Market and Uninstall Market buttons! That's how you do it!",
"updated": 1616176532878,
"text": "Take a look at the menu of the BTC/USDT Market! Notice the \"Install Market\" and \"Uninstall Market\" buttons! That's how you do it!",
"updated": 1622378122769,
"translations": [
{
"language": "IT",
"text": "Guarda il menù del market BTC\\USDT, e trova i pulsanti Install Market e Uninstall Market. Ecco come si fa!",
"updated": 1619592006493
"updated": 1619592006493,
"style": "Callout"
}
]
},
@@ -50,7 +53,8 @@
{
"language": "IT",
"text": "Non mi addentro oltre, lo farà Install a New Market Tutorial in seguito!",
"updated": 1619592082998
"updated": 1619592082998,
"style": "Success"
}
]
}
@@ -13,7 +13,8 @@
{
"language": "IT",
"text": "Ora ti parlo della mia amica, la barra di ricerca nei Docs. Diciamo che ha una doppia vita: non solo cerca, ma comanda pure! ",
"updated": 1619631665874
"updated": 1619631665874,
"style": "Definition"
}
]
},
@@ -26,7 +27,8 @@
{
"language": "IT",
"text": "Quello che voglio dire è che la barra di ricerca è anche una riga di comando! La lista di comandi riguarda:",
"updated": 1619631729737
"updated": 1619631729737,
"style": "Text"
}
]
},
@@ -38,10 +40,15 @@
{
"language": "IT",
"text": "Produzione e modifica della documentazione",
"updated": 1619631754180
"updated": 1619631754180,
"style": "List"
}
]
},
{
"style": "List",
"text": "Getting updates."
},
{
"style": "List",
"text": "Contributing work to the project.",
@@ -50,7 +57,8 @@
{
"language": "IT",
"text": "Aggiungere il proprio contributo al progetto",
"updated": 1619631772476
"updated": 1619631772476,
"style": "List"
}
]
},
@@ -62,7 +70,8 @@
{
"language": "IT",
"text": "Lavoreremo su un esempio pratico che riguarda entrambe le cose! Ti insegnerò come modificare i docs e contribuire, usando un paio di comandi!",
"updated": 1619631824997
"updated": 1619631824997,
"style": "Callout"
}
]
},
@@ -74,7 +83,8 @@
{
"language": "IT",
"text": "Presenterò i prossimi step con una breve storia...spero ti piaccia l'idea!",
"updated": 1619631849733
"updated": 1619631849733,
"style": "Text"
}
]
}
@@ -73,8 +73,8 @@
},
{
"style": "List",
"text": "Find the Beyond the Basics Tutorial in the bottom-right corner of the workspace and select Resume on the menu! If Resume doesn't work, find the Welcome Back! step under the Branches Topic and click Play on the menu!",
"updated": 1617036301673,
"text": "Find the Beyond the Basics Tutorial in the bottom-right corner of the workspace and select \"Resume\" on the menu! If \"Resume\" doesn't work, find the \"Welcome Back!\" step under the Branches Topic and click \"Play\" on the menu!",
"updated": 1622389621077,
"translations": [
{
"language": "IT",
@@ -1,24 +0,0 @@
{
"tutorial": "Beyond the Basics",
"pageNumber": 1,
"type": "Beyond the Basics Tutorial",
"definition": {
"text": "This tutorial covers the setup to allow the app to interact with your Github fork, the commands to update the app, switching branches, and how to contribute to the project.",
"updated": 1616697721841
},
"paragraphs": [
{
"style": "Title",
"text": "About This Tutorial",
"updated": 1617111531823
},
{
"style": "List",
"text": "Workspace: Getting Started Plugin Workspace."
},
{
"style": "List",
"text": "Maintainer: @julianmolina (Telegram)."
}
]
}
@@ -31,8 +31,8 @@
},
{
"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": 1614242374513
"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
},
{
"style": "Text",
@@ -3,12 +3,12 @@
"pageNumber": 7,
"type": "Tutorial Step - Trigger Stage",
"definition": {
"text": "Trigger Stage is a our Talent Scout",
"text": "Trigger Stage is our Talent Scout",
"icon": {
"name": "trigger-stage",
"project": "Superalgos"
},
"updated": 1614243745480
"updated": 1622385913906
},
"paragraphs": [
{
@@ -13,8 +13,8 @@
"paragraphs": [
{
"style": "Text",
"text": "Before runnin 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": 1614267828443
"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
},
{
"style": "List",
@@ -22,7 +22,8 @@
},
{
"style": "List",
"text": "Session Quoted Asset is set to 1000 (That is 1000$USDT in this case)"
"text": "Session Quoted Asset is set to 1000 (That is 1000$ USDT in this case)",
"updated": 1622386176926
},
{
"style": "List",
@@ -28,8 +28,8 @@
},
{
"style": "List",
"text": "Market",
"updated": 1614269960052
"text": "Candles",
"updated": 1622386265635
},
{
"style": "List",
@@ -12,20 +12,22 @@
{
"language": "IT",
"text": "Il Trading Engine gestisce la complessità del trading automatico rendendo le informazioni accessibili agli utenti e ai sistemi di trading.",
"updated": 1618067277865
"updated": 1618067277865,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Text",
"text": "Rember my comments about granularity? Remember how the formula on the trading system fetched the value of the exit target rate? Here's a quick reminder:",
"updated": 1610536534720,
"text": "Remember my comments about granularity? Remember how the formula on the trading system fetched the value of the exit target rate? Here's a quick reminder:",
"updated": 1622228180200,
"translations": [
{
"language": "IT",
"text": "Ricordi i miei commenti sulla granularità? Ricordi come la formula del trading system prendeva il valore dell'Exit Target Rate? Ecco un promemoria:",
"updated": 1618067378217
"updated": 1618067378217,
"style": "Text"
}
]
},
@@ -41,7 +43,8 @@
{
"language": "IT",
"text": "Questa stringa contiene il percorso a quel dato nel contesto della struttura della gerarchia del Trading Engine! Riesci a trovare il nodo dell'Exit Target Rate? Espandi la gerarchia e seguila!",
"updated": 1618067490282
"updated": 1618067490282,
"style": "Callout"
}
]
}
@@ -12,7 +12,8 @@
{
"language": "IT",
"text": "Ok, amico mio...è ora di entrare in azione! Sei pronto a una piccola Live Trading Session?",
"updated": 1618068381473
"updated": 1618068381473,
"style": "Definition"
}
]
},
@@ -24,7 +25,8 @@
{
"language": "IT",
"text": "Ti aiuterò con i tre requisiti principali:",
"updated": 1618068402523
"updated": 1618068402523,
"style": "Text"
}
]
},
@@ -35,7 +37,8 @@
{
"language": "IT",
"text": "Controlla i parametri: in particolar modo decidi bene quanto capitale assegnare alla sessione",
"updated": 1618068548173
"updated": 1618068548173,
"style": "List"
}
]
},
@@ -46,7 +49,8 @@
{
"language": "IT",
"text": "Prepara un Exchange Account Key: necessaria perchè l'app possa accedere al tuo account sull'exchange.",
"updated": 1618068559526
"updated": 1618068559526,
"style": "List"
}
]
},
@@ -58,19 +62,21 @@
{
"language": "IT",
"text": "Garantisci un live data feed: l'operazione di data mining con gli indicatori richiesti dal Trading System deve essere attiva e aggiornata.",
"updated": 1618068565912
"updated": 1618068565912,
"style": "List"
}
]
},
{
"style": "Note",
"text": "If you are not ready to do some live trading for whatever reason, no worries, just keep going.",
"updated": 1610642653006,
"text": "If you are not ready to do some live trading for whatever reason, no worries, just keep going. You will at least learn how things work!",
"updated": 1622232287190,
"translations": [
{
"language": "IT",
"text": "Se per un qualunque motivo non sei pronto a fare live trading, non preccuparti! Prosegui pure.",
"updated": 1618068597799
"updated": 1618068597799,
"style": "Note"
}
]
}
@@ -12,7 +12,8 @@
{
"language": "IT",
"text": "Prima di lanciare la Live Trading Session, assicurati di avere abbastanza USDT nel tuo wallet spot sull'exchange.",
"updated": 1618070262891
"updated": 1618070262891,
"style": "Definition"
}
]
},
@@ -24,7 +25,8 @@
{
"language": "IT",
"text": "Controlla il tuo saldo sull'exchange e prepara abbastanza USDT per la sessione!",
"updated": 1618070327486
"updated": 1618070327486,
"style": "Callout"
}
]
},
@@ -35,19 +37,21 @@
{
"language": "IT",
"text": "Il Trading Bot inserirà un limit order del valore di initialBalance, e lo cancellerà il minuto successivo se non viene evaso, come spiegato prima.",
"updated": 1618070448288
"updated": 1618070448288,
"style": "Important"
}
]
},
{
"style": "Note",
"text": "Keep going even if you are not ready to trade. You'll learn a few more tricks before we finish.",
"updated": 1616431994687,
"text": "Keep going even if you are not ready to trade! It's important because there are more things to learn in the tutorial!",
"updated": 1622232501088,
"translations": [
{
"language": "IT",
"text": "Continua il tutorial anche se non sei pronto al live trading. Imparerai altri trucchi utili prima della fine.",
"updated": 1618070434600
"updated": 1618070434600,
"style": "Note"
}
]
}
@@ -13,7 +13,8 @@
{
"language": "IT",
"text": "Qui è dove configuro le Exchange Account Key per la Live Trading Session del Lightning Strike Trading System.",
"updated": 1618070825773
"updated": 1618070825773,
"style": "Definition"
}
]
},
@@ -26,7 +27,8 @@
{
"language": "IT",
"text": "Accedi alla configurazione e inserisci attentamente la API Public Key e la API Secret Key.",
"updated": 1618070869172
"updated": 1618070869172,
"style": "Callout"
}
]
},
@@ -37,19 +39,21 @@
{
"language": "IT",
"text": "Cancella prima la stringa di testo di default per ogni parametro, così da non rischiare errori inserendo le tue chiavi.",
"updated": 1618070932988
"updated": 1618070932988,
"style": "Text"
}
]
},
{
"style": "Note",
"text": "The Exchange Account Key is stored in the workspace file. It is used to authenticate with the exchange when the Trading Bot deals with orders. It is never sent or stored anywhere else.",
"updated": 1616435057411,
"style": "Warning",
"text": "The Exchange Account Key is stored in the User Workspace file, unencrypted. It is used to authenticate with the exchange. It's never sent or stored elsewhere. Don't share this workspace until you learn to how do it safely in the next tutorial.",
"updated": 1622233064100,
"translations": [
{
"language": "IT",
"text": "L'Exchange Account Key è salvata nel workspace file. È utilizzata dal Trading Bot per autenticarsi sull'exchange quando gestisce gli ordini. Non viene inviata nè salvata in nessun'altro luogo.",
"updated": 1618071006665
"updated": 1618071006665,
"style": "Note"
}
]
}
@@ -7,13 +7,14 @@
"project": "Superalgos",
"name": "indicator-process-instance"
},
"text": "Resistances and Supports Multi-Time-Frame-Daily to the left is the last of the processes to finish.",
"updated": 1610643083669,
"text": "Resistances and Supports Multi-Time-Frame-Daily to the left is the last of the processes to finish, so keep an eye on it!",
"updated": 1622233213694,
"translations": [
{
"language": "IT",
"text": "Resistances and Supports Multi-Time-Frame-Daily a sinistra è l'ultimo processo a terminare.",
"updated": 1618071215837
"updated": 1618071215837,
"style": "Definition"
}
]
},
@@ -25,7 +26,8 @@
{
"language": "IT",
"text": "Se il processo è a 100%, allora siamo pronti a iniziare.",
"updated": 1618071233196
"updated": 1618071233196,
"style": "Text"
}
]
},
@@ -36,7 +38,8 @@
{
"language": "IT",
"text": "Ad ogni modo, non succede niente di catastrofico se tenti di lanciare una Live Trading Session quando gl indicatori non sono pronti. Ti viene semplicemente notificato un errore. Nessun problema quindi!",
"updated": 1618071277306
"updated": 1618071277306,
"style": "Note"
}
]
},
@@ -48,7 +51,8 @@
{
"language": "IT",
"text": "Nel prossimo step ti chiederò di lanciare la Task e la Live Trading Session. Se non vuoi farlo, continua con il tutorial come se niente fosse.",
"updated": 1618071315670
"updated": 1618071315670,
"style": "Success"
}
]
}
@@ -12,32 +12,37 @@
{
"language": "IT",
"text": "Abbiamo completato tutti e tre i punti sulla nostra checklist e siamo pronti a partire!",
"updated": 1618071368189
"updated": 1618071368189,
"style": "Definition"
}
]
},
"paragraphs": [
{
"style": "Callout",
"text": "Run the Lightning Strike Task, and then run the Lightning Strike Live Trading Session to the right!",
"text": "Run the Lightning Strike Task, and then run the Lightning Strike Live Trading Session further down the hierarchy!",
"translations": [
{
"language": "IT",
"text": "Lancia la Lightning Strike Task, e poi lancia la Lightning Strike Live Trading Session a destra!",
"updated": 1618071413222
"updated": 1618071413222,
"style": "Callout"
}
]
],
"updated": 1622233324259
},
{
"style": "Note",
"text": "Once you run the session, the trading bot may have to wait up to 60 seconds for the last indicator to finish processing. Once it does, you will see the current date and a 0% progress notice under the Trading Process Instance, which will remain like that throughout the run.",
"text": "Once you run the session, the trading bot may have to wait up to 60 seconds for the last indicator to finish processing. Once it does, you will see the current date and a 0% progress notice under the Trading Process Instance, which will remain like that throughout the run, because we are not setting a time limit for the session.",
"translations": [
{
"language": "IT",
"text": "Una volta lanciata la sessione, il trading bot può dover attendere fino a 60 secondi perchè gli ultimi indicatori terminino. Una volta completati, vedrai la data corrente e un progresso dello 0% sotto la Trading Process Instance, che rimarrà così per tutta la durata della sessione.",
"updated": 1618071515418
"updated": 1618071515418,
"style": "Note"
}
]
],
"updated": 1622233370311
}
]
}
@@ -3,8 +3,8 @@
"pageNumber": 109,
"type": "Tutorial Step - Help Us With a Star!",
"definition": {
"text": "Did you enjoy this tutorial? Would you like to show your gratitude to the Community by giving a star to the Superalgos repo?",
"updated": 1618574544900,
"text": "I hope you enjoyed this tutorial! Would you like to show your gratitude by giving a star to the Superalgos repo?",
"updated": 1622379203330,
"icon": {
"name": "github",
"project": "Superalgos"
@@ -12,7 +12,7 @@
let fileStorage = TS.projects.superalgos.taskModules.fileStorage.newFileStorage(processIndex)
let statusDependencies
let statusDependenciesModule
let dataDependenciesModule
let dataFiles = new Map
let indicatorOutputModule
@@ -21,9 +21,9 @@
return thisObject;
function initialize(pStatusDependencies, pDataDependencies, callBackFunction) {
statusDependencies = pStatusDependencies;
dataDependenciesModule = pDataDependencies;
function initialize(pStatusDependencies, pStatusDependenciesModule, callBackFunction) {
statusDependenciesModule = pStatusDependencies;
dataDependenciesModule = pStatusDependenciesModule;
indicatorOutputModule = TS.projects.superalgos.botModules.indicatorOutput.newSuperalgosBotModulesIndicatorOutput(processIndex)
indicatorOutputModule.initialize(callBackFunction)
@@ -31,7 +31,7 @@
function finalize() {
dataFiles = undefined
statusDependencies = undefined
statusDependenciesModule = undefined
dataDependenciesModule = undefined
indicatorOutputModule = undefined
fileStorage = undefined
@@ -60,7 +60,7 @@
/*
We look first for the bot who knows the begining of the market in order to get when the market starts.
*/
statusReport = statusDependencies.reportsByMainUtility.get("Market Starting Point")
statusReport = statusDependenciesModule.reportsByMainUtility.get("Market Starting Point")
if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month.
TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
@@ -112,7 +112,7 @@
/*
Here we get the status report from the bot who knows which is the end of the market.
*/
statusReport = statusDependencies.reportsByMainUtility.get("Market Ending Point")
statusReport = statusDependenciesModule.reportsByMainUtility.get("Market Ending Point")
if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month.
TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
@@ -147,7 +147,7 @@
contextVariables.dateEndOfMarket = new Date(thisReport.lastFile.valueOf())
/* Finally we get our own Status Report. */
statusReport = statusDependencies.reportsByMainUtility.get("Self Reference")
statusReport = statusDependenciesModule.reportsByMainUtility.get("Self Reference")
if (statusReport === undefined) { // This means the status report does not exist, that could happen for instance at the begining of a month.
TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
@@ -229,9 +229,9 @@
"[ERROR] start -> getContextVariables -> err = " + err.stack)
if (err.message === "Cannot read property 'file' of undefined") {
TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
"[HINT] start -> getContextVariables -> Check the bot configuration to see if all of its statusDependencies declarations are correct. ")
"[HINT] start -> getContextVariables -> Check the bot configuration to see if all of its statusDependenciesModule declarations are correct. ")
TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME,
"[HINT] start -> getContextVariables -> Dependencies loaded -> keys = " + JSON.stringify(statusDependencies.keys))
"[HINT] start -> getContextVariables -> Dependencies loaded -> keys = " + JSON.stringify(statusDependenciesModule.keys))
}
callBackFunction(TS.projects.superalgos.globals.standardResponses.DEFAULT_FAIL_RESPONSE)
}
@@ -610,9 +610,7 @@
}
function writeStatusReport(lastFileDate, callBack) {
let reportKey = TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.config.codeName + "-" +
TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.config.codeName + "-" + "Multi-Time-Frame-Daily"
let thisReport = statusDependencies.statusReports.get(reportKey)
let thisReport = statusDependenciesModule.reportsByMainUtility.get('Self Reference')
thisReport.file.lastFile = lastFileDate;
thisReport.file.interExecutionMemoryArray = interExecutionMemoryArray;
@@ -12,17 +12,17 @@
let fileStorage = TS.projects.superalgos.taskModules.fileStorage.newFileStorage(processIndex)
let statusDependencies
let statusDependenciesModule
let dataDependenciesModule
let dataFiles = new Map()
let indicatorOutputModule
return thisObject;
function initialize(pStatusDependencies, pDataDependencies, callBackFunction) {
function initialize(pStatusDependencies, pStatusDependenciesModule, callBackFunction) {
statusDependencies = pStatusDependencies
dataDependenciesModule = pDataDependencies
statusDependenciesModule = pStatusDependencies
dataDependenciesModule = pStatusDependenciesModule
indicatorOutputModule = TS.projects.superalgos.botModules.indicatorOutput.newSuperalgosBotModulesIndicatorOutput(processIndex)
indicatorOutputModule.initialize(callBackFunction)
@@ -31,7 +31,7 @@
function finalize() {
fileStorage = undefined
dataFiles = undefined
statusDependencies = undefined
statusDependenciesModule = undefined
dataDependenciesModule = undefined
indicatorOutputModule = undefined
thisObject = undefined
@@ -209,9 +209,7 @@
}
function writeStatusReport(callBack) {
let reportKey = TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.config.codeName + "-" +
TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.config.codeName + "-" + "Multi-Time-Frame-Market"
let thisReport = statusDependencies.statusReports.get(reportKey)
let thisReport = statusDependenciesModule.reportsByMainUtility.get('Self Reference')
thisReport.file.lastExecution = TS.projects.superalgos.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).PROCESS_DATETIME;
if (TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.timeFramesFilter !== undefined) {
@@ -106,7 +106,7 @@ function newUiObjectTitle() {
switch (titleReference) {
case 'Use Parent': {
let nodeToUse = thisObject.payload.parentNode
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
thisObject.payload.title = thisObject.payload.title + separator + nodeToUse.payload.title
thisObject.payload.node.name = thisObject.payload.node.name + separator + nodeToUse.payload.node.name
}
@@ -114,7 +114,7 @@ function newUiObjectTitle() {
}
case 'Use Reference Parent': {
let nodeToUse = thisObject.payload.node.payload.referenceParent
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
thisObject.payload.title = thisObject.payload.title + separator + nodeToUse.payload.title
thisObject.payload.node.name = thisObject.payload.node.name + separator + nodeToUse.payload.node.name
}
@@ -122,7 +122,7 @@ function newUiObjectTitle() {
}
case 'Use Reference Parent Type': {
let nodeToUse = thisObject.payload.node.payload.referenceParent
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
thisObject.payload.title = thisObject.payload.title + separator + nodeToUse.type
thisObject.payload.node.name = thisObject.payload.node.name + separator + nodeToUse.type
}
@@ -130,7 +130,7 @@ function newUiObjectTitle() {
}
case 'Use Reference Grandparent': {
let nodeToUse = thisObject.payload.node.payload.referenceParent
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
nodeToUse = thisObject.payload.node.payload.referenceParent.payload.referenceParent
if (nodeToUse !== undefined) {
thisObject.payload.title = thisObject.payload.title + separator + nodeToUse.payload.title
@@ -141,9 +141,9 @@ function newUiObjectTitle() {
}
case 'Use Reference Parent Parent': {
let nodeToUse = thisObject.payload.node.payload.referenceParent
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
nodeToUse = thisObject.payload.node.payload.referenceParent.payload.parentNode
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
thisObject.payload.title = thisObject.payload.title + separator + nodeToUse.payload.title
thisObject.payload.node.name = thisObject.payload.node.name + separator + nodeToUse.payload.node.name
}
@@ -152,11 +152,11 @@ function newUiObjectTitle() {
}
case 'Use Reference Parent Parent Parent': {
let nodeToUse = thisObject.payload.node.payload.referenceParent
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
nodeToUse = thisObject.payload.node.payload.referenceParent.payload.parentNode
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
nodeToUse = thisObject.payload.node.payload.referenceParent.payload.parentNode.payload.parentNode
if (nodeToUse !== undefined && nodeToUse.payload !== undefined) {
if (nodeToUse !== undefined && nodeToUse.payload !== undefined && nodeToUse.payload.node.name !== "New " + nodeToUse.payload.node.type && nodeToUse.payload.node.name !== "My " + nodeToUse.payload.node.type) {
thisObject.payload.title = thisObject.payload.title + separator + nodeToUse.payload.title
thisObject.payload.node.name = thisObject.payload.node.name + separator + nodeToUse.payload.node.name
}
@@ -333,8 +333,8 @@ function newUiObjectTitle() {
if (UI.projects.superalgos.spaces.floatingSpace.inMapMode === true) {
labelPoint = UI.projects.superalgos.spaces.floatingSpace.transformPointToMap(labelPoint)
labelPoint.x = labelPoint.x - getTextWidth(label) / 2,
labelPoint.y = labelPoint.y - 35
labelPoint.x = labelPoint.x - getTextWidth(label) / 2,
labelPoint.y = labelPoint.y - 35
let schemaDocument = getSchemaDocument(thisObject.payload.node)
if (schemaDocument !== undefined) {
@@ -352,19 +352,19 @@ function newUiObjectTitle() {
return
}
/* Split the line into Phrases */
const FRAME_WIDTH = (label.length + 2) / 2 * thisObject.payload.floatingObject.currentFontSize * FONT_ASPECT_RATIO * 1.2 * 2
label = thisObject.payload.title
/* Split the line into Phrases */
const FRAME_WIDTH = (label.length + 2) / 2 * thisObject.payload.floatingObject.currentFontSize * FONT_ASPECT_RATIO * 1.2 * 2
label = thisObject.payload.title
let phrases = splitTextIntoPhrases(label, 2)
let lineSeparator = thisObject.payload.floatingObject.currentFontSize * 1.2
for (let i = 0; i < phrases.length; i++) {
let phrase = phrases[i]
let point = {
x: labelPoint.x - getTextWidth(phrase) / 2 + FRAME_WIDTH / 2,
x: labelPoint.x - getTextWidth(phrase) / 2 + FRAME_WIDTH / 2,
y: labelPoint.y - lineSeparator * (phrases.length - 1 - i)
}
if (UI.projects.superalgos.spaces.floatingSpace.inMapMode === false) {
printMessage(phrase, point)
}
+1
View File
@@ -1,3 +1,4 @@
/* Global Constatns */
let canvas
let PROJECTS_ARRAY